Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Designing a semantic model for a wide-spectrum language with concurrency

Published: 01 September 2017 Publication History

Abstract

A wide-spectrum language integrates specification constructs into a programming language in a manner that treats a specification command just like any other command. The primary contribution of this paper is a semantic model for a wide-spectrum language that supports concurrency and a refinement calculus. A distinguishing feature of the language is that steps of the environment are modelled explicitly, alongside steps of the program. From these two types of steps a rich set of specification commands can be constructed, based on operators for nondeterministic choice, and sequential and parallel composition. We also introduce a novel operator, weak conjunction, which is used extensively to conjoin separate aspects of specifications, allowing us to take a separation-of-concerns approach to subsequent reasoning. We provide a denotational semantics for the language based on traces, which may be terminating, aborting, infeasible, or infinite. To demonstrate the generality and unifying strength of the language, we use it to express a range of concepts from the concurrency literature, including: a refinement theory for rely/guarantee reasoning; an abstract specification of local variables in a concurrent context; specification of an abstract, linearisable data structure; a partial encoding of temporal logic; and defining the relationships between notions of nonblocking programs. The novelty of the paper is that these diverse concepts build on the same theory. In particular, the rely concept from Jones’ rely/guarantee framework, and a stronger demand concept that restricts the environment, are reused across the different domains to express assumptions about the environment. The language and model form an instance of an abstract concurrent program algebra, and this facilitates reasoning about properties of the model at a high level of abstraction.

References

References

[1]
Aczel PHG (1983) On an inference rule for parallel composition. Private communication to Cliff Jones http://homepages.cs.ncl.ac.uk/cliff.jones/publications/MSs/PHGA-traces.pdf
[2]
Back R-JR (1989) A method for refining atomicity in parallel algorithms. In: Odijk E, Rem M, Syre J-C (eds) PARLE’89 parallel architectures and languages Europe. LNCS, vol 366. Springer, Berlin, pp 199–216
[3]
Back R-JR, von Wright J (1998) Refinement calculus: a systematic introduction. Springer, New York
[4]
Brookes S Full abstraction for a shared-variable parallel language Inf Comput 1996 127 2 145-163
[5]
Brookes S A semantics for concurrent separation logic Theor Comput Sci 2007 375 1–3 227-270
[6]
Coleman JW and Jones CB A structural proof of the soundness of rely/guarantee rules J Log Comput 2007 17 4 807-841
[7]
de Boer FS, Hannemann U, De Roever W-P (1999) Formal justification of the rely-guarantee paradigm for shared-variable concurrency: a semantic approach. In: Wing J, Woodcock J, Davies J (eds) FM’99—Formal Methods. Lecture Notes in Computer Science, vol 1709. Springer, Berlin, pp 1245–1265
[8]
De Roever W-P Concurrency verification: introduction to compositional and noncompositional methods 2001 Cambridge Cambridge University Press
[9]
Dingel J A refinement calculus for shared-variable parallel and distributed programming Form Aspects Comput 2002 14 2 123-197
[10]
Dongol B (2006) Formalising progress properties of non-blocking programs. In: Liu Z, He J (eds) Formal Methods and Software Engineering. Lecture Notes in Computer Science, vol 4260. Springer, Berlin, pp 284–303
[11]
Floyd RW Assigning meanings to programs Math Aspects Comput Sci 1967 19 19-32
[12]
Foster S, Zeyda F, Woodcock J (2014) Isabelle/UTP: a mechanised theory engineering framework. In: Naumann D (ed) Unifying Theories of Programming—5th International Symposium, UTP 2014, Singapore, May 13, 2014, Revised Selected Papers. Lecture Notes in Computer Science, vol 8963. Springer, pp 21–41
[13]
Hayes IJ Generalised rely-guarantee concurrency: an algebraic foundation Form Aspects Comput 2016 28 6 1057-1078
[14]
Hayes IJ, Jones CB, Colvin RJ (2014) Laws and semantics for rely-guarantee refinement. Technical Report CS-TR-1425, Newcastle University
[15]
Hayes IJ, Utting M (1998) Deadlines are termination. In: Gries D, De Roever W-P (eds) IFIP TC2/WG2.2, 2.3 International Conference on Programming Concepts and Methods (PROCOMET’98). Chapman and Hall, London, pp 186–204
[16]
Hayes I (ed) (1993) Specification case studies, 2nd edn. Prentice Hall International, Englewood Cliffs
[17]
Hayes IJ, Meinicke L (2014) Invariants, well-founded statements and real-time program algebra. In: Jones CB, Pihlajasaari P, Sun J (eds) Formal Methods (FM 2014). LNCS, vol 8442. Springer, Berlin, pp 318–334
[18]
Herlihy M, Luchangco V, Moir M (2003) Obstruction-free synchronization: double-ended queues as an example. In: ICDCS’03: Proceedings of the 23rd International Conference on Distributed Computing Systems, Washington, DC, USA. IEEE Computer Society, pp 522–529
[19]
Herlihy MP and Wing JM Linearizability: a correctness condition for concurrent objects ACM Trans Program Lang Syst 1990 12 3 463-492
[20]
Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–580, 583
[21]
Hoare CAR Communicating sequential processes 1985 Englewood Cliffs Prentice-Hall
[22]
Hoare CAR, Möller B, Struth G, and Wehrman I Concurrent Kleene algebra and its foundations J Log Algebr Program 2011 80 6 266-296
[23]
Jones CB (1981) Development methods for computer programs including a notion of interference. PhD thesis, Oxford University. Oxford University Computing Laboratory (now Computer Science) Technical Monograph PRG-25
[24]
Jones CB Tentative steps toward a development method for interfering programs ACM Trans Program Lang Syst 1983 5 4 596-619
[25]
Jones CB, Hayes IJ, and Colvin RJ Balancing expressiveness in formal approaches to concurrency Form Aspects Comput 2015 27 3 475-497
[26]
Lamport L (2003) Specifying systems: the TLA+ language and tools for hardware and software engineers. Addison Wesley, Reading
[27]
Morgan CC The specification statement ACM Trans Prog Lang Syst 1988 10 3 403-419
[28]
Plotkin GD (2004) A structural approach to operational semantics. J Log Algebr Program 60–61:17–139
[29]
Pnueli A (1977) The temporal logic of programs. In: 18th Annual Symposium on Foundations of Computer Science. IEEE, pp 46–57
[30]
Spivey JM The Z notation: a reference manual 1992 2 Englewood Cliffs Prentice Hall International
[31]
von Wright J Towards a refinement algebra Sci Comput Program 2004 51 23-45
[32]
Woodcock J and Davies J Using Z: specification, refinement, and proof 1996 Englewood Cliffs Prentice Hall International

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Formal Aspects of Computing
Formal Aspects of Computing  Volume 29, Issue 5
Sep 2017
153 pages
ISSN:0934-5043
EISSN:1433-299X
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 September 2017
Accepted: 28 November 2016
Received: 23 March 2016
Published in FAC Volume 29, Issue 5

Author Tags

  1. Refinement calculus
  2. Wide-spectrum language
  3. Concurrency
  4. Program algebra
  5. Rely-guarantee

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)18
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Restructuring a Concurrent Refinement AlgebraRelational and Algebraic Methods in Computer Science10.1007/978-3-031-68279-7_9(135-155)Online publication date: 19-Aug-2024
  • (2024)Clarifying AssumptionsThe Application of Formal Methods10.1007/978-3-031-67114-2_3(43-70)Online publication date: 1-Sep-2024
  • (2024)Practical Rely/Guarantee Verification of an Efficient Lock for seL4 on Multicore ArchitecturesThe Practice of Formal Methods10.1007/978-3-031-66676-6_4(65-87)Online publication date: 4-Sep-2024
  • (2024)Reasoning About Distributive Laws in a Concurrent Refinement AlgebraThe Practice of Formal Methods10.1007/978-3-031-66673-5_1(1-22)Online publication date: 4-Sep-2024
  • (2023)Using cylindric algebra to support local variables in rely/guarantee concurrency2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE)10.1109/FormaliSE58978.2023.00019(108-119)Online publication date: May-2023
  • (2023)Specifying and Reasoning About Shared-Variable ConcurrencyTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_5(110-135)Online publication date: 8-Sep-2023
  • (2023)A Fine-Grained Semantics for Arrays and Pointers Under Weak Memory ModelsFormal Methods10.1007/978-3-031-27481-7_18(301-320)Online publication date: 6-Mar-2023
  • (2021)Software SpecificationTheories of Programming10.1145/3477355.3477367(251-270)Online publication date: 4-Oct-2021
  • (2020)Unifying theories of reactive design contractsTheoretical Computer Science10.1016/j.tcs.2019.09.017802:C(105-140)Online publication date: 8-Jan-2020
  • (2020)Unifying semantic foundations for automated verification tools in Isabelle/UTPScience of Computer Programming10.1016/j.scico.2020.102510197(102510)Online publication date: Oct-2020
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media