A Capability Calculus for Concurrency and Determinism

  • Tachio Terauchi
  • Alex Aiken
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4137)


We present a capability calculus for checking partial confluence of channel-communicating concurrent processes. Our approach automatically detects more programs to be partially confluent than previous approaches and is able to handle a mix of different kinds of communication channels, including shared reference cells.


Type System Operational Semantic Reference Cell Reader Process Reduction Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aiken, A., Gay, D.: Barrier inference. In: Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pp. 342–354 (January 1998)Google Scholar
  2. 2.
    Blom, S., van de Pol, J.: State space reduction by proving confluence. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 596–609. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. 3.
    Boyland, J.: Checking interference with fractional permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55–72. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  4. 4.
    Crary, K., Walker, D., Morrisett, G.: Typed memory management in a calculus of capabilities. In: Proceedings of the 26th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pp. 262–275 (January 1999)Google Scholar
  5. 5.
    Edwards, S.A., Tardieu, O.: Shim: a deterministic model for heterogeneous embedded systems. In: Proceedings of the 5th ACM International Conference On Embedded Software, Jersey City, NJ, pp. 264–272 (September 2005)Google Scholar
  6. 6.
    Groote, J.F., van de Pol, J.: State space reduction using partial tau-confluence. In: Proceedings of 25th International Symposium on the Mathematical Foundations of Computer Science 2000, Bratislava, Slovakia, pp. 383–393 (August 2000)Google Scholar
  7. 7.
    Kahn, G.: The semantics of a simple language for parallel programming. In: Information processing, Stockholm, Sweden, pp. 471–475 (August 1974)Google Scholar
  8. 8.
    Kobayashi, N., Pierce, B.C., Turner, D.N.: Linearity and the pi-calculus. ACM Transactions on Programming Languages and Systems 21(5), 914–947 (1999)CrossRefGoogle Scholar
  9. 9.
    König, B.: Analysing input/output-capabilities of mobile processes with a generic type system. In: Welzl, E., Montanari, U., Rolim, J.D.P. (eds.) ICALP 2000. LNCS, vol. 1853, pp. 403–414. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    Nestmann, U., Steffen, M.: Typing confluence. In: Proceedings of FMICS 1997, pp. 77–101 (1997)Google Scholar
  11. 11.
    Terauchi, T., Aiken, A.: Witnessing side-effects. In: Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming, Tallinn, Estonia, September 2005, pp. 105–115. ACM, New York (2005)CrossRefGoogle Scholar
  12. 12.
    Terauchi, T., Aiken, A.: A capability calculus for concurrency and determinism. Technical Report UCB/EECS-2006-84, University of California, Berkeley (2006)Google Scholar
  13. 13.
    Walker, D., Morrisett, G.: Alias types for recursive data structures. In: International Workshop on Types in Compilation, Montreal, Canada (September 2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Tachio Terauchi
    • 1
  • Alex Aiken
    • 2
  1. 1.EECS DepartmentUniversity of CaliforniaBerkeley
  2. 2.Computer Science DepartmentStanford University 

Personalised recommendations