Compiling CSP

CSP, Hoare’s Communicating Sequential Processes, is a form al language for specifying, implementing and reasoning about concurre nt processes and their interactions. Existing software tools that deal with CSP dire ctly are largely concerned with assisting formal proofs. This paper presents an altern a ive use for CSP, namely the compilation of CSP systems to executable code. The main m otivation for this work is in providing a means to experiment with relatively large C SP systems, possibly consisting millions of concurrent processes — something that i s hard to achieve with the tools currently available.

[1]  Uwe Schmidt,et al.  A multi-language compiler system with automatically generated codegenerators , 1984, SIGPLAN '84.

[2]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

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

[4]  Rodnay Zaks A language machine , 1971, APLQ.

[5]  Fiona A. C. Polack,et al.  Communicating complex systems , 2006, 11th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'06).

[6]  Bill Roscoe,et al.  Denotational semantics for occam2‚ Part 2 , 1994 .

[7]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[8]  The T9000 transputer instruction set manual , 1993 .

[9]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[10]  Corporate Ieee,et al.  Information Technology-Portable Operating System Interface , 1990 .

[11]  Matthew Flatt Composable and compilable macros:: you want it when? , 2002, ICFP '02.

[12]  James Moores CCSP - A portable CSP-based run-time system supporting C and occam , 1999 .

[13]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .

[14]  Jeffrey G. Gray,et al.  Separation of concerns in compiler development using aspect-orientation , 2006, SAC.

[15]  Mordechai Ben-Ari How to solve the Santa Claus problem , 1998, Concurr. Pract. Exp..

[16]  Michael D. Poole Extended Transputer Code - a Target-Independent Representation of Parallel Programs , 1998 .

[17]  Jim Woodcock,et al.  The Semantics of Circus , 2002, ZB.

[18]  Peter H. Welch,et al.  Communicating Mobile Processes : Introducing occam-pi , 2005 .

[19]  Peter H. Welch,et al.  The Kent retargetable occam compiler , 1996 .

[20]  David A. Padua,et al.  Compiler techniques for high performance sequentially consistent java programs , 2005, PPOPP.

[21]  Fred R. M. Barnes,et al.  Dynamics and pragmatics for high performance concurrency , 2003 .