Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11609773_20guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Resource usage analysis for the π-calculus

Published: 08 January 2006 Publication History

Abstract

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.

References

[1]
T. Ball, B. Cook, V. Levin, and S. K. Rajamani. SLAM and static driver verifier: Technology transfer of formal methods inside microsoft. In Integrated Formal Methods 2004, volume 2999 of LNCS, pages 1-20. Springer-Verlag, 2004.
[2]
T. Ball and S. K. Rajamani. The SLAM project: Debugging system software via static analysis. In Proc. of POPL, pages 1-3, 2002.
[3]
S. Chaki, S. Rajamani, and J. Rehof. Types as models: Model checking message-passing programs. In Proc. of POPL, pages 45-57, 2002.
[4]
M. Dam. Model checking mobile processes. Information and Computation, 129(1):35-51, 1996.
[5]
R. DeLine and M. Fähndrich. Enforcing high-level protocols in low-level software. In Proc. of PLDI, pages 59-69, 2001.
[6]
R. DeLine and M. Fähndrich. Adoption and focus: Practical linear types for imperative programming. In Proc. of PLDI, 2002.
[7]
J. S. Foster, T. Terauchi, and A. Aiken. Flow-sensitive type qualifiers. In Proc. of PLDI, pages 1-12, 2002.
[8]
A. Igarashi and N. Kobayashi. A generic type system for the pi-calculus. Theor. Comput. Sci., 311(1-3):121-163, 2004.
[9]
A. Igarashi and N. Kobayashi. Resource usage analysis. ACM Trans. Prog. Lang. Syst., 27(2):264-313, 2005. Preliminary summary appeared in Proceedings of POPL 2002.
[10]
N. Kobayashi. Type-based information flow analysis for the pi-calculus. Acta Informatica. to appear.
[11]
N. Kobayashi. TyPiCal: A type-based static analyzer for the pi-calculus. Tool available at http://www.kb.ecei.tohoku.ac.jp/~koba/typical/.
[12]
N. Kobayashi. A partially deadlock-free typed process calculus. ACM Trans. Prog. Lang. Syst., 20(2):436-482, 1998.
[13]
N. Kobayashi. A type system for lock-free processes. Info. Comput., 177:122-159, 2002.
[14]
N. Kobayashi, S. Saito, and E. Sumii. An implicitly-typed deadlock-free process calculus. In Proc. of CONCUR2000, volume 1877 of LNCS, pages 489-503. Springer-Verlag, August 2000.
[15]
N. Kobayashi, K. Suenaga, and L. Wischik. Resource usage analysis for the picalculus. Full version, 2005. http://www.kb.ecei.tohoku.ac.jp/~koba/papers/ usage-pi.pdf.
[16]
K. Marriott, P. J. Stuckey, and M. Sulzmann. Resource usage verification. In Proceedings of the First Asian Symposium on Programming Languages and Systems (APLAS 2003), volume 2895 of LNCS, pages 212-229, 2003.
[17]
R. Milner. Communication and Concurrency. Prentice Hall, 1989.
[18]
N. Nguyen and J. Rathke. Typed static analysis for concurrent, policy-based, resource access control. draft.
[19]
J. L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice-Hall, 1981.
[20]
C. Skalka and S. Smith. History effects and verification. In Proceedings of the First Asian Symposium on Programming Languages and Systems (APLAS 2004), volume 3302 of LNCS, pages 107-128, 2004.
[21]
B. Victor and F. Moller. The Mobility Workbench -- a tool for the π-calculus. In CAV'94: Computer Aided Verification, volume 818 of LNCS, pages 428-440. Springer-Verlag, 1994.
[22]
P. Yang, C. R. Ramakrishnan, and S. A. Smolka. A logical encoding of the pi-calculus: Model checking mobile processes using tabled resolution. In Proceedings of VMCAI 2003, volume 2575 of LNCS, pages 116-131. Springer-Verlag, 2003.

Cited By

View all
  • (2024)Law and Order for Typestate with BorrowingProceedings of the ACM on Programming Languages10.1145/36897638:OOPSLA2(1475-1503)Online publication date: 8-Oct-2024
  • (2011)Advanced mechanisms for service composition, query and discoveryRigorous software engineering for service-oriented systems10.5555/2043021.2043038(282-301)Online publication date: 1-Jan-2011
  • (2007)Type abstractions of name-passing processesProceedings of the 2007 international conference on Fundamentals of software engineering10.5555/1775223.1775243(302-317)Online publication date: 17-Apr-2007
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
VMCAI'06: Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
January 2006
443 pages
ISBN:3540311394

Sponsors

  • University of Texas at Austin: University of Texas at Austin
  • NEC Research Labs: NEC Research Labs
  • Microsoft Research: Microsoft Research

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 08 January 2006

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Law and Order for Typestate with BorrowingProceedings of the ACM on Programming Languages10.1145/36897638:OOPSLA2(1475-1503)Online publication date: 8-Oct-2024
  • (2011)Advanced mechanisms for service composition, query and discoveryRigorous software engineering for service-oriented systems10.5555/2043021.2043038(282-301)Online publication date: 1-Jan-2011
  • (2007)Type abstractions of name-passing processesProceedings of the 2007 international conference on Fundamentals of software engineering10.5555/1775223.1775243(302-317)Online publication date: 17-Apr-2007
  • (2007)Regulating data exchange in service oriented applicationsProceedings of the 2007 international conference on Fundamentals of software engineering10.5555/1775223.1775238(223-239)Online publication date: 17-Apr-2007
  • (2007)A calculus for orchestration of web servicesProceedings of the 16th European Symposium on Programming10.5555/1762174.1762180(33-47)Online publication date: 24-Mar-2007
  • (2006)Resource usage analysis for a functional language with exceptionsProceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1111542.1111550(38-47)Online publication date: 9-Jan-2006

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media