Concurrent Pattern Calculus

  • Thomas Given-Wilson
  • Daniele Gorla
  • Barry Jay
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 323)


Concurrent pattern calculus drives interaction between processes by unifying patterns, just as sequential pattern calculus drives computation by matching a pattern against a data structure. By generalising from pattern matching to unification, interaction becomes symmetrical, with information flowing in both directions. This provides a natural language for describing any form of exchange or trade. Many popular process calculi can be encoded in concurrent pattern calculus.


  1. 1.
    Barendregt, H.P.: The Lambda Calculus. Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematics. Elsevier Science Publishers B.V., Amsterdam (1985)MATHGoogle Scholar
  2. 2.
    bondi programming language,
  3. 3.
    Brown, A.L., Laneve, C., Meredith, L.G.: Piduce: A process calculus with native XML datatypes. In: Bravetti, M., Kloul, L., Zavattaro, G. (eds.) EPEW/WS-EM 2005. LNCS, vol. 3670, pp. 18–34. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Gelernter, D.: Generative communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)MATHCrossRefGoogle Scholar
  5. 5.
    Given-Wilson, T., Gorla, D., Jay, B.: Concurrent pattern calculus, long version (2010),
  6. 6.
    Gordon, A., Abadi, M.: A calculus for cryptographic protocols: The spi calculus. In: 4th ACM Conference on Computer and Communications Security, pp. 36–47 (1997)Google Scholar
  7. 7.
    Gorla, D.: Comparing communication primitives via their relative expressive power. Information and Computation 206(8), 931–952 (2008)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Gorla, D.: Towards a unified approach to encodability and separation results for process calculi. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 492–507. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Jay, B.: Pattern Calculus: Computing with Functions and Data Structures. Springer, Heidelberg (2009)MATHGoogle Scholar
  10. 10.
    Jay, B., Given-Wilson, T.: A combinatory account of internal structure (2010),
  11. 11.
    Jay, B., Kesner, D.: First-class patterns. Journal of Functional Programming 19(2), 34pages (2009)CrossRefMathSciNetGoogle Scholar
  12. 12.
    Milner, R.: The polyadic π-calculus: A tutorial. In: Bauer, F.L., Brauer, W., Schwichtenberg, H. (eds.) Logic and Algebra of Specification. NATO ASI., vol. 94. Springer, Heidelberg (1993)Google Scholar
  13. 13.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Information and Computation 100, 1–77 (1992)MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Nicola, R.D., Ferrari, G., Pugliese, R.: KLAIM: A kernel language for agents interaction and mobility. IEEE Transactions on Software Engineering 24(5), 315–330 (1998)CrossRefGoogle Scholar
  15. 15.
    Parrow, J., Victor, B.: The fusion calculus: Expressiveness and symmetry in mobile processes. In: Proc. of LICS, pp. 176–185. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  16. 16.
    Picco, G., Murphy, A., Roman, G.-C.: Lime: Linda Meets Mobility. In: Garlan, D. (ed.) Proc. of the 21st Int. Conference on Software Engineering (ICSE’99), pp. 368–377. ACM Press, New York (1999)CrossRefGoogle Scholar
  17. 17.
    Wischik, L., Gardner, P.: Explicit fusions. Theor. Comput. Sci. 340(3), 606–630 (2005)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© IFIP 2010

Authors and Affiliations

  • Thomas Given-Wilson
    • 1
  • Daniele Gorla
    • 2
  • Barry Jay
    • 1
  1. 1.Centre for Quantum Computation and Intelligent Systems &, School of SoftwareUniversity of TechnologySydney
  2. 2.Dip. di InformaticaUniv. di Roma “La Sapienza” 

Personalised recommendations