Types for deterministic concurrency

This thesis describes a method for ensuring partial determinism in concurrent programs. The idea is presented in two settings: sequential processes communicating via channels and shared references and functional programming with references.

[1]  James R. McGraw,et al.  The VAL Language: Description and Analysis , 1982, TOPL.

[2]  Arvind,et al.  M-Structures: Extending a Parallel, Non-strict, Functional Language with State , 1991, FPCA.

[3]  Jean-Luc Gaudiot,et al.  The Sisal model of functional programming and its implementation , 1997, Proceedings of IEEE International Symposium on Parallel Algorithms Architecture Synthesis.

[4]  Uwe Nestmann Typing Confluence , 1997 .

[5]  Jan Friso Groote,et al.  State Space Reduction Using Partial tau-Confluence , 2000, MFCS.

[6]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[7]  Jack B. Dennis,et al.  A preliminary architecture for a basic data-flow processor , 1974, ISCA '75.

[8]  Paul Hudak,et al.  Single-threaded polymorphic lambda calculus , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[9]  Seth Copen Goldstein,et al.  Spatial computation , 2004, ASPLOS XI.

[10]  Arvind,et al.  Executing a Program on the MIT Tagged-Token Dataflow Architecture , 1990, IEEE Trans. Computers.

[11]  Alexander Aiken,et al.  Partial online cycle elimination in inclusion constraint graphs , 1998, PLDI.

[12]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[13]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[14]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[15]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[16]  Jack B. Dennis,et al.  A preliminary architecture for a basic data-flow processor , 1974, ISCA '98.

[17]  Mario Tokoro,et al.  On Asynchronous Communication Semantics , 1991, Object-Based Concurrent Computing.

[18]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[19]  James Cheney,et al.  Region-based memory management in cyclone , 2002, PLDI '02.

[20]  Alexander Aiken,et al.  Witnessing side-effects , 2005, ICFP '05.

[21]  Sandeep K. Shukla,et al.  Extended abstract: a race-free hardware modeling language , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[22]  David Walker,et al.  Typed memory management in a calculus of capabilities , 1999, POPL '99.

[23]  Barbara König Analysing input/output-capabilities of mobile processes with a generic type system , 2005, J. Log. Algebraic Methods Program..

[24]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[25]  Mads Tofte,et al.  Implementation of the typed call-by-value λ-calculus using a stack of regions , 1994, POPL '94.

[26]  David Walker,et al.  Alias Types for Recursive Data Structures , 2000, Types in Compilation.

[27]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.

[28]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[29]  Marinus J. Plasmeijer,et al.  High Level Specification of I/O in Functional Languages , 1992, Functional Programming.

[30]  Amr Sabry,et al.  Monadic state: axiomatization and type safety , 1997, ICFP '97.

[31]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[32]  Seth Copen Goldstein,et al.  Dataflow: A Complement to Superscalar , 2005, IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..

[33]  Paul Hudak,et al.  Call by name, assignment, and the lambda calculus , 1993, POPL '93.

[34]  Kevin Hammond,et al.  Parallel Functional Programming: An Introduction , 1994, PASCO.

[35]  Jaco van de Pol,et al.  State Space Reduction by Proving Confluence , 2002, CAV.

[36]  Benjamin C. Pierce,et al.  Linearity and the pi-calculus , 1999, TOPL.

[37]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[38]  John Launchbury,et al.  A natural semantics for lazy evaluation , 1993, POPL '93.

[39]  Stephen A. Edwards,et al.  SHIM: a deterministic model for heterogeneous embedded systems , 2005, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[40]  David Gay,et al.  Barrier inference , 1998, POPL '98.

[41]  Gérard Boudol,et al.  Asynchrony and the Pi-calculus , 1992 .

[42]  William W. Wadge,et al.  Lucid, a nonprocedural language with iteration , 1977, CACM.

[43]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[44]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .