Synthesis of concurrent programs for an atomic read/write model of computation

Methods for mechanically synthesizing concurrent programs for temporal logic specifications have been proposed by Emerson and Clarke and by Manna and Wolper. An important advantage of these synthesis methods is that they obviate the need to manually compose a program and manually construct a proof of its correctness. A serious drawback of these methods in practice, however, is that they produce concurrent programs for models of computation that are often unrealistic, involving highly centralized system architecture (Manna and Wolper), processes with global information about the system state (Emerson and Clarke), or reactive modules that can read all of their inputs in one atomic step (Anuchitanukul and Manna, and Pnueli and Rosner). Even simple synchronization protocols based on atomic read/write primitives such as Peterson's solution to the mutual exclusion problem have remained outside the scope of practical mechanical synthesis methods. In this paper, we show how to mechanically synthesize in more realistic computational models solutions to synchronization problems. We illustrate the method by synthesizing Peterson's solution to the mutual exclusion problem.

[1]  Ralph-Johan Back,et al.  Trace Refinement of Action Systems , 1994, CONCUR.

[2]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[3]  Jean-Pierre Banâtre,et al.  Parallel Program Design , 1991, Research Directions in High-Level Parallel Programming Languages.

[4]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[5]  Lutz Priese,et al.  Fairness , 1988, Bull. EATCS.

[6]  E. Pascal Gribomont,et al.  Stepwise Refinement and Concurrency: The Finite-State Case , 1990, Sci. Comput. Program..

[7]  Edmund M. Clarke,et al.  Reasoning about networks with many identical finite-state processes , 1986, PODC '86.

[8]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[9]  Amir Pnueli,et al.  On the Synthesis of an Asynchronous Reactive Module , 1989, ICALP.

[10]  Ambuj K. Singh,et al.  The elusive atomic register , 1994, JACM.

[11]  Nancy A. Lynch,et al.  Forward and Backward Simulations: I. Untimed Systems , 1995, Inf. Comput..

[12]  F. Vaandrager Forward and Backward Simulations Part I : Untimed Systems , 1993 .

[13]  Anish Arora A foundation of fault-tolerant computing , 1992 .

[14]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[15]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[16]  David L. Dill,et al.  Synthesizing Processes and Schedulers from Temporal Specifications , 1990, CAV.

[17]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[18]  Paul C. Attie,et al.  Synthesis of concurrent systems with many similar processes , 1998, TOPL.

[19]  Pierre Wolper,et al.  Synthesis of Communicating Processes from Temporal Logic Specifications , 1981, TOPL.

[20]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[21]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[22]  Paul C. Attie,et al.  Synthesis of Large Concurrent Programs via Pairwise Composition , 1999, CONCUR.

[23]  Zohar Manna,et al.  Realizability and Synthesis of Reactive Modules , 1994, CAV.

[24]  Edmund M. Clarke,et al.  Characterizing Finite Kripke Structures in Propositional Temporal Logic , 1988, Theor. Comput. Sci..

[25]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[26]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[27]  Paul C. Attie Formal methods for the synthesis of concurrent programs from temporal logic specifications , 1995 .

[28]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[29]  E. Pascal Gribomont,et al.  Concurrency Without Toil: A Systematics Method for Parallel Program Design , 1993, Sci. Comput. Program..

[30]  Anish Arora,et al.  Synthesis of fault-tolerant concurrent programs , 2004, TOPL.