Resource Usage Analysis for the Pi-Calculus

We propose a type-based resource usage analysis for the (pi)-calculus extended with resource creation/access primitives. The goal of the resource usage analysis is to statically check that a program accesses resources such as files and memory in a valid manner. Our type system is an extension of previous behavioral type systems for the pi-calculus, and can guarantee the safety property that no invalid access is performed, as well as the property that necessary accesses (such as the close operation for a file) are eventually performed unless the program diverges. A sound type inference algorithm for the type system is also developed to free the programmer from the burden of writing complex type annotations. Based on the algorithm, we have implemented a prototype resource usage analyzer for the π-calculus. To the authors' knowledge, ours is the first type-based resource usage analysis that deals with an expressive concurrent language like the π-calculus.

[1]  Cormac Flanagan,et al.  A type and effect system for atomicity , 2003, PLDI.

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

[3]  Elisabeth Pelz Closure Properties of Deterministic Petri Nets , 1987, STACS.

[4]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[5]  C. R. Ramakrishnan,et al.  A Logical Encoding of the pi-Calculus: Model Checking Mobile Processes Using Tabled Resolution , 2003, VMCAI.

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

[7]  Naoki Kobayashi Type-based information flow analysis for the π-calculus , 2005, Acta Informatica.

[8]  Naoki Kobayashi,et al.  Resource Usage Analysis for the p-Calculus , 2006, Log. Methods Comput. Sci..

[9]  Atsushi Igarashi,et al.  A generic type system for the Pi-calculus , 2004, Theor. Comput. Sci..

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

[11]  Naoki Kobayashi,et al.  Resource usage analysis , 2005 .

[12]  Scott F. Smith,et al.  History Effects and Verification , 2004, APLAS.

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

[14]  Mads Dam,et al.  Model Checking Mobile Processes , 1993, Inf. Comput..

[15]  Jakob Rehof,et al.  Models for Contract Conformance , 2004, ISoLA.

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

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

[18]  Nicholas Nguyen Typed static analysis for concurrent, policy-based, resource access control , 2006 .

[19]  Peter J. Stuckey,et al.  Resource Usage Verification , 2003, APLAS.

[20]  Ernst W. Mayr An Algorithm for the General Petri Net Reachability Problem , 1984, SIAM J. Comput..

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

[22]  C. R. Ramakrishnan,et al.  A logical encoding of the π-calculus: model checking mobile processes using tabled resolution , 2002, International Journal on Software Tools for Technology Transfer.

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

[24]  C. A. R. Hoare,et al.  Stuck-Free Conformance , 2004, CAV.

[25]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

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

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

[28]  Faron Moller,et al.  The Mobility Workbench - A Tool for the pi-Calculus , 1994, CAV.

[29]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.