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

Streamlining progress-based derivations of concurrent programs

Published: 01 March 2008 Publication History

Abstract

The logic of Owicki and Gries is a well-known logic for verifying safety properties of concurrent programs. Using this logic, Feijen and van Gasteren describe a method for deriving concurrent programs based on safety. In this work, we explore derivation techniques of concurrent programs using progress-based reasoning. We use a framework that combines the safety logic of Owicki and Gries, and the progress logic of UNITY. Our contributions improve the applicability of our earlier techniques by reducing the calculational overhead in the formal proofs and derivations. To demonstrate the effectiveness of our techniques, a derivation of Dekker’s mutual exclusion algorithm is presented. This derivation leads to the discovery of some new and simpler variants of this famous algorithm.

References

References

[1]
Alagarsamy K Some myths about famous mutual exclusion algorithms SIGACT News 2003 34 3 94-103
[2]
Bar-David Y, Taubenfeld G (2003) Automatic discovery of mutual exclusion algorithms. In: Proceedings of the international conference on distributed computing (DISC 2003), Vol 2848. LNCS. Springer, Heidelberg, pp 136–150
[3]
Chandy KM and Misra J Parallel program design: A foundation 1988 USA Addison–Wesley Longman
[4]
Dongol B and Goldson D Extending the theory of Owicki and Gries with a logic of progress Logical Methods Comput Sci 2006 2 1 1-25
[5]
Dongol B, Hayes IJ (2007) Trace semantics for the Owicki–Gries theory integrated with the progress logic from UNITY. Technical Report SSE-2007-02, Division of Systems and Software Engineering Research, School of Information Technology and Electrical Engineering, The University of Queensland, QLD 4072, Australia, April 2007
[6]
Dijkstra EW (1968) Cooperating sequential processes. In: Programming languages. Academic Press, New York, pp 43–112
[7]
Dijkstra EW A discipline of programming 1976 Englewood Cliffs Prentice Hall
[8]
Dijkstra EW (1982) A personal summary of the Gries–Owicki theory. In: Selected writings on computing: a personal perspective. Springer, Heidelberg, pp 188–199
[9]
Dongol B, Mooij AJ (2006) Progress in deriving concurrent programs: emphasizing the role of stable guards. In: Proceedings of the international conference on mathematics of program construction (MPC 2006), Vol 4014. LNCS. Springer, Heidelberg, pp 140–161
[10]
Dongol B (2006) Formalising progress properties of non-blocking programs. In: Proceedings of the international conference on formal engineering methods (ICFEM 2006), Vol 4260. LNCS. Springer, Heidelberg, pp 284–303
[11]
Feijen WHJ (2005) A method for avoiding total deadlock, courtesy Diethard Michaelis. Personal note WF284, June 2005
[12]
Francez N Fairness 1986 Heidelberg Springer
[13]
Feijen WHJ and van Gasteren AJM On a method of multiprogramming 1999 Heidelberg Springer
[14]
Goldson D, Dongol B (2005) Concurrent program design in the extended theory of Owicki and Gries. In: Proceedings of computing: the Australasian theory symposium (CATS 2005), Vol 41 of CRPIT. Australian Computer Society, pp 41–50
[15]
Misra J (1990) More on strengthening the guard. http://www.cs.utexas.edu/users/psp/unity/notes/19-90.pdf, July 1990
[16]
Mooij AJ (2006) Constructive formal methods and protocol standardization. PhD thesis, Technische Universiteit Eindhoven, October 2006
[17]
Manna Z and Pnueli P Temporal verification of reactive and concurrent systems: specification 1992 New York Springer
[18]
Mooij AJ, Wesselink JW (2003) A formal analysis of a dynamic distributed spanning tree algorithm. Computer Science Report 03–16, Department of Mathematics and Computer Science, Technische Universiteit Eindhoven, December 2003
[19]
Mooij AJ, Wesselink JW (2005) Incremental verification of Owicki/Gries proof outlines using PVS. In: Proceedings of the international conference on formal engineering methods (ICFEM 2005), Vol 3785 of LNCS. Springer, Heidelberg, pp 390–404
[20]
Nelson G A generalization of Dijkstra’s calculus ACM Trans Programm Lang Syst 1989 11 4 517-561
[21]
Owicki S and Gries D An axiomatic proof technique for parallel programs I Acta Inf 1976 6 319-340
[22]
Peterson GL Myths about the mutual exclusion problem Inf Process Lett 1981 12 115-116
[23]
Stølen K (1990) Development of parallel programs on shared data-structures. PhD thesis, University of Manchester

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Formal Aspects of Computing
Formal Aspects of Computing  Volume 20, Issue 2
Mar 2008
98 pages
ISSN:0934-5043
EISSN:1433-299X
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 March 2008
Accepted: 27 April 2007
Revision received: 26 April 2007
Received: 30 August 2006
Published in FAC Volume 20, Issue 2

Author Tags

  1. Concurrent programs
  2. Mathematical techniques
  3. Program derivation
  4. Progress

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)27
  • Downloads (Last 6 weeks)6
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media