A generic type system for the Pi-calculus

We propose a general, powerful framework of type systems for the π-calculus, and show that we can obtain as its instances a variety of type systems guaranteeing non-trivial properties like deadlock-freedom and race-freedom. A key idea is to express types and type environments as abstract processes: We can check various properties of a process by checking the corresponding properties of its type environment. The framework clarifies the essence of recent complex type systems, and it also enables sharing of a large amount of work such as a proof of type preservation, making it easy to develop new type systems.

[1]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[2]  Nobuko Yoshida,et al.  Graph Types for Monadic Mobile Processes , 1996, FSTTCS.

[3]  Cliff B. Jones A pi-Calculus Semantics for an Object-Based Design Notation , 1993, CONCUR.

[4]  François Pessaux,et al.  Type-based analysis of uncaught exceptions , 2000, TOPL.

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

[6]  Naoki Kobayashi Type Systems for Concurrent Processes: From Deadlock-Freedom to Livelock-Freedom, Time-Boundedness , 2000, IFIP TCS.

[7]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[8]  António Ravara,et al.  Typing Non-uniform Concurrent Objects , 2000, CONCUR.

[9]  Akinori Yonezawa,et al.  Towards Foundations of Concurrent Object-Oriented Programming-Types and Language Design , 1995, Theory Pract. Object Syst..

[10]  Sylvain Conchon,et al.  JOIN(X): Constraint-Based Type Inference for the Join-Calculus , 2001, ESOP.

[11]  Nobuko Yoshida,et al.  A uniform type structure for secure information flow , 2002, POPL '02.

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

[13]  Simon J. Gay,et al.  A sort inference algorithm for the polyadic π-calculus , 1993, POPL '93.

[14]  Jérôme Feret,et al.  Occurrence Counting Analysis for the pi-Calculus , 2000, GETCO.

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

[16]  Flemming Nielson,et al.  Higher-order concurrent programs with finite communication topology (extended abstract) , 1994, POPL '94.

[17]  Naoki Kobayashi A type system for lock-free processes , 2002 .

[18]  Martín Abadi,et al.  Types for Safe Locking , 1999, ESOP.

[19]  Alexander Aiken,et al.  Program Analysis Using Mixed Term and Set Constraints , 1997, SAS.

[20]  Colin Stirling,et al.  Modal and Temporal Logics for Processes , 1996, Banff Higher Order Workshop.

[21]  Franz Puntigam,et al.  Changeable interfaces and promised messages for concurrent components , 1999, SAC '99.

[22]  Arnaud Venet,et al.  Automatic Determination of Communication Topologies in Mobile Systems , 1998, SAS.

[23]  Martín Abadi,et al.  Object Types against Races , 1999, CONCUR.

[24]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[25]  Pierre Jouvelot,et al.  Polymorphic type, region and effect inference , 1992, Journal of Functional Programming.

[26]  Luca Cardelli,et al.  Anytime, anywhere: modal logics for mobile ambients , 2000, POPL '00.

[27]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[28]  Nobuko Yoshida,et al.  Secure Information Flow as Typed Process Behaviour , 2000, ESOP.

[29]  Kohei Honda,et al.  Principal Typing Schemes in a Polyadic pi-Calculus , 1993, CONCUR.

[30]  James Riely,et al.  Information Flow vs. Resource Access in the Asynchronous Pi-Calculus , 2000, ICALP.

[31]  Barbara König Analysing Input/Output-Capabilities of Mobile Processes with a Generic Type System , 2000, ICALP.

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

[33]  Stephen N. Freund,et al.  A type system for object initialization in the Java bytecode language , 1998, OOPSLA '98.

[34]  R. Milner Calculi for interaction , 1996, Acta Informatica.

[35]  Sagar Chaki,et al.  Types as models: model checking message-passing programs , 2002, POPL '02.

[36]  Naoki Kobayashi,et al.  A Generalized Deadlock-Free Process Calculus , 1998, Electron. Notes Theor. Comput. Sci..

[37]  Atsushi Igarashi,et al.  Type Reconstruction for Linear -Calculus with I/O Subtyping , 2000, Inf. Comput..

[38]  Benjamin C. Pierce,et al.  Concurrent Objects in a Process Calculus , 1994, Theory and Practice of Parallel Programming.

[39]  Kohei Honda,et al.  Composing processes , 1996, POPL '96.

[40]  Naoki Kobayashi Quasi-linear types , 1999, POPL '99.

[41]  Andrew D. Gordon,et al.  Ðð Blockinøöóòò Aeóøø× Ò Ìììóööøø Blockin Blockinð Óñôùøøö Ë Blockin , 2007 .

[42]  James Riely,et al.  Information flow vs. resource access in the asynchronous pi-calculus , 2000, TOPL.

[43]  Naoki Kobayashi A partially deadlock-free typed process calculus , 1998, TOPL.

[44]  Alexander Aiken,et al.  Flow-sensitive type qualifiers , 2002, PLDI '02.

[45]  Shin Saito,et al.  An Implicitly-Typed Deadlock-Free Process Calculus , 2000, CONCUR.

[46]  Barbara König Generating Type Systems for Process Graphs , 1999, CONCUR.

[47]  Naoki Kobayashi Time regions and effects for resource usage analysis , 2003, TLDI '03.

[48]  Robert DeLine,et al.  Enforcing high-level protocols in low-level software , 2001, PLDI '01.

[49]  Robert DeLine,et al.  Adoption and focus: practical linear types for imperative programming , 2002, PLDI '02.

[50]  Vasco Thudichum Vasconcelos,et al.  Principal Typing Schemes in a Polyadic pi-Calculus , 1993, CONCUR.

[51]  Andrew D. Gordon,et al.  Authenticity by typing for security protocols , 2001, Proceedings. 14th IEEE Computer Security Foundations Workshop, 2001..

[52]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[53]  Atsushi Igarashi,et al.  Resource usage analysis , 2002, POPL '02.

[54]  Stephen N. Freund,et al.  Type-based race detection for Java , 2000, PLDI '00.

[55]  Davide Sangiorgi,et al.  Behavioral equivalence in the polymorphic pi-calculus , 2000, JACM.