On Implementations and Semantics of a Concurrent Programming Language

The concurrency theory literature contains many proposals for models of process algebras. We consider an example application of the π-calculus, the programming language Pict of Pierce and Turner, primarily in order to see how far it is possible to argue, from facts about the application, that some model is the most appropriate. We discuss informally the sense in which the semantics of Pict relates to the behaviour of actual implementations. Based on this we give an operational model of the interactions between a Pict implementation (considered as the abstract behaviour of a C program) and its environment (modelling an operating system and user). We then give a class of abstract machines and a definition of abstract machine correctness, using an adapted notion of testing, and prove that a sample abstract machine is indeed correct. We briefly discuss the standard of correctness appropriate for program transformations and the induced precongruence. Many of the semantic choices do indeed turn out to be determined by facts about Pict.

[1]  D. J. Walker,et al.  Bisimulations and divergence , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[2]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[3]  Benjamin C. Pierce,et al.  Decoding Choice Encodings , 1996, Inf. Comput..

[4]  David N. Turner,et al.  The polymorphic Pi-calculus : theory and implementation , 1996 .

[5]  Rob J. van Glabbeek,et al.  The Linear Time-Branching Time Spectrum (Extended Abstract) , 1990, CONCUR.

[6]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[7]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[8]  Rocco De Nicola,et al.  Testing Equivalence for Mobile Processes , 1995, Inf. Comput..

[9]  Cliff B. Jones,et al.  Accommodating interference in the formal design of concurrent object-based programs , 1996, Formal Methods Syst. Des..

[10]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[11]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[12]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[13]  Robin Milner,et al.  A Modal Characterisation of Observable Machine-Behaviour , 1981, CAAP.

[14]  R. V. Glabbeek The Linear Time - Branching Time Spectrum II: The Semantics of Sequential Systems with Silent Moves , 1993 .

[15]  John H. Reppy,et al.  Higher-Order Concurrency , 1992 .

[16]  Davide Sangiorgi,et al.  On Bisimulations for the Asynchronous pi-Calculus , 1996, Theor. Comput. Sci..

[17]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[18]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum II , 1993, CONCUR.

[19]  Steven J. Vickers,et al.  Quantales, observational logic and process semantics , 1993, Mathematical Structures in Computer Science.

[20]  Davide Sangiorgi,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[21]  David Walker,et al.  On Transformations of Concurrent Object Programs , 1996, CONCUR.

[22]  R. J. vanGlabbeek The linear time - branching time spectrum , 1990 .

[23]  Tsung-Min Kuo,et al.  A Facile Tutorial , 1996, CONCUR.

[24]  David Walker,et al.  On Transformations of Concurrent-Object Programs , 1996, Theor. Comput. Sci..

[25]  M Hennessy A Model for the -calculus , 1991 .

[26]  Samson Abramsky,et al.  Observation Equivalence as a Testing Equivalence , 1987, Theor. Comput. Sci..

[27]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..