skip to main content
research-article
Open access

A capability calculus for concurrency and determinism

Published: 04 September 2008 Publication History

Abstract

This article presents a static system for checking determinism (technically, partial confluence) of communicating concurrent processes. Our approach automatically detects partial confluence in programs communicating via a mix of different kinds of communication methods: rendezvous channels, buffered channels, broadcast channels, and reference cells. Our system reduces the partial confluence checking problem in polynomial time (in the size of the program) to the problem of solving a system of rational linear inequalities, and is thus efficient.

References

[1]
Aiken, A. and Gay, D. 1998. Barrier inference. In Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 342--354.
[2]
Blom, S. and van de Pol, J. 2002. State space reduction by proving confluence. In Proceedings of the 14th International Conference on Computer Aided Verification. 596--609.
[3]
Boudol, G. 1992. Asynchrony and the pi-calculus. Tech. rep. 1702, INRIA Sophia Antipolis.
[4]
Boyland, J. 2003. Checking interference with fractional permissions. In Proceedings of the 10th International Symposium on Static Ananysis. 55--72.
[5]
Coates, W. S., Lexau, J. K., Jones, I. W., Fairbanks, S. M., and Sutherland, I. E. 2001. Fleetzero: An asynchronous switching experiment. In Proceedings of the 7th International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC'01). IEEE Computer Society.
[6]
Crary, K., Walker, D., and Morrisett, G. 1999. Typed memory management in a calculus of capabilities. In Proceedings of the 26th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 262--275.
[7]
DeLine, R. and Fähndrich, M. 2001. Enforcing High-Level Protocols in Low-Level Software. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1, 59--69.
[8]
Edwards, S. A. and Tardieu, O. 2005. Shim: a deterministic model for heterogeneous embedded systems. In Proceedings of the 5th ACM International Conference On Embedded Software. 264--272.
[9]
Foster, J. S., Terauchi, T., and Aiken, A. 2002. Flow-sensitive type qualifiers. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.
[10]
Gordon, A. D. and Jeffrey, A. 2001. Typing correspondence assertions for communication protocols. Theor. Comput. Sci. 45.
[11]
Gordon, A. D. and Jeffrey, A. 2002. Types and Effects for Asymmetric Cryptographic Protocols. IEEE Computer Society.
[12]
Groote, J. F. and van de Pol, J. 2000. State space reduction using partial tau-confluence. In Proceedings of 25th International Symposium on the Mathematical Foundations of Computer Science. 383--393.
[13]
Hansen, H. and Valmari, A. 2006. Operational determinism and fast algorithms. In Concurrency Theory, 17th International Conference (CONCUR'06). Vol. 4137. Springer, 188--202.
[14]
Honda, K. and Tokoro, M. 1992. On asynchronous communication semantics. In Proceedings of the European Conference on Object-Oriented Programming Workshop on Object-Based Concurrent Computing. Springer-Verlag, 21--51.
[15]
Igarashi, A. and Kobayashi, N. 2004. A generic type system for the pi-calculus. Theor. Comput. Sci. 311, 1-3, 121--163.
[16]
Kahn, G. 1974. The semantics of a simple language for parallel programming In Information Processing. Stockholm, Sweden, 471--475.
[17]
Kobayashi, N. 2007. Personal communication.
[18]
Kobayashi, N., Nakade, M., and Yonezawa, A. 1995. Static analysis of communication for asynchronous concurrent programming languages. In Proceedings of the 2nd International Symposium on Static Analysis. Glasgow, Scotland, 225--242.
[19]
Kobayashi, N., Pierce, B. C., and Turner, D. N. 1999. Linearity and the pi-calculus. ACM Trans. Program. Lang. Syst. 21, 5, 914--947.
[20]
König, B. 2000. Analysing input/output-capabilities of mobile processes with a generic type system. In Proceedings of the 27th International Colloquium on Automata, Languages and Programming. 403--414.
[21]
Lee, E. A. 2006. The problem with threads. Tech. rep. UCB/EECS-2006-1, EECS Department, University of California, Berkeley.
[22]
Megacz, A. 2006. CCCD implementation. http://research.cs.berkeley.edu/project/cccd-impl/README.
[23]
Nestmann, U. and Steffen, M. 1997. Typing confluence. In Proceedings of FMICS '97. 77--101.
[24]
Smith, F., Walker, D., and Morrisett, G. 2000. Alias Types. In Proceedings of the 9th European Symposium on Programming, G. Smolka, Ed. Lecture Notes in Computer Science, vol. 1782. Springer-Verlag, Berlin, Germany, 366--381.
[25]
Sutter, H. and Larus, J. 2005. Software and the concurrency revolution. Queue 3, 7, 54--62.
[26]
Terauchi, T. and Aiken, A. 2005. Witnessing side-effects. In Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming. ACM, 105--115.
[27]
Terauchi, T. and Aiken, A. 2006. A capability calculus for concurrency and determinism. In Concurrency Theory, 17th International Conference (CONCUR'06). Vol. 4137. Springer, Bonn, Germany, 218--232.
[28]
Walker, D. and Morrisett, G. 2000. Alias types for recursive data structures. In Proceedings of the International Workshop on Types in Compilation. Montreal, Canada.
[29]
Wang, X. and Kwiatkowska, M. 2006. Compositional state space reduction using untangled actions. In Proceedings of the 13th International Workshop on Expressiveness in Concurrency (EXPRESS'06). 16--28.
[30]
Yoshida, N., Berger, M., and Honda, K. 2004. Strong normalisation in the pi-calculus. Inform. Comput. 191, 2, 145--202.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 30, Issue 5
August 2008
193 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/1387673
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 September 2008
Accepted: 01 November 2007
Revised: 01 October 2007
Received: 01 September 2007
Published in TOPLAS Volume 30, Issue 5

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Determinism
  2. capabilities
  3. type systems

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • KAKENHAI

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)69
  • Downloads (Last 6 weeks)6
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Ready, set, Go!Science of Computer Programming10.1016/j.scico.2020.102473195(102473)Online publication date: Sep-2020
  • (2013)Fractional permissionsAliasing in Object-Oriented Programming10.5555/2554511.2554526(270-288)Online publication date: 1-Jan-2013
  • (2013)Alias control for deterministic parallelismAliasing in Object-Oriented Programming10.5555/2554511.2554521(156-195)Online publication date: 1-Jan-2013
  • (2013)Alias Control for Deterministic ParallelismAliasing in Object-Oriented Programming. Types, Analysis and Verification10.1007/978-3-642-36946-9_7(156-195)Online publication date: 2013
  • (2013)Fractional PermissionsAliasing in Object-Oriented Programming. Types, Analysis and Verification10.1007/978-3-642-36946-9_10(270-288)Online publication date: 2013
  • (2012)Towards a practical secure concurrent languageACM SIGPLAN Notices10.1145/2398857.238462147:10(57-74)Online publication date: 19-Oct-2012
  • (2012)Towards a practical secure concurrent languageProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/2384616.2384621(57-74)Online publication date: 19-Oct-2012
  • (2012)Deterministic parallelism via liquid effectsACM SIGPLAN Notices10.1145/2345156.225407147:6(45-54)Online publication date: 11-Jun-2012
  • (2012)Deterministic parallelism via liquid effectsProceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2254064.2254071(45-54)Online publication date: 11-Jun-2012
  • (2012)A type and effect system for determinism in multithreaded programsProceedings of the 21st European conference on Programming Languages and Systems10.1007/978-3-642-28869-2_26(518-538)Online publication date: 24-Mar-2012
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media