PiStache: Implementing π-Calculus in Scala

  • Pedro Matiello
  • Ana C. V. de Melo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7021)


π-calculus is a pioneer theory for concurrent and reconfigurable agent systems. It has been widely used as foundation (semantics) for other theories and languages aiming at representing the computational phenomenon of changing systems’ behaviour at runtime. In services-oriented applications for example, reconfiguration is highly required due to the needs of configuring systems accordingly to local contexts. Today, a set of researches are devoted to extending π-calculus features to reconcile concepts behind web-services applications. However, a problem still remains: how to simulate π-agents to have insights on the real behaviour of the specified system? The reconfiguration features embedded in π-calculus enrich its expressiveness but impose a more elaborate semantics, making its implementation a challenging task. The current work presents an implementation of all π-calculus core elements with which one can define agents and simulate them. Such implementation is given as a Domain Specific Language (DSL) in Scala.


Pi-calculus Scala reconfiguration 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bengtson, J., Johansson, M., Parrow, J., Victor, B.: Psi-calculi: a framework for mobile processes with nominal data and logic. Logical Methods in Computer Science 7(1) (2011)Google Scholar
  2. 2.
    Carbone, M., Honda, K., Yoshida, N., Milner, R.: Structured communication-centred programming for web services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 2–17. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Cremet, V., Odersky, M.: Pilib: A hosted language for pi-calculus style concurrency. In: Lengauer, C., Batory, D.S., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 180–195. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM (1978)Google Scholar
  5. 5.
    Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press (1999)Google Scholar
  6. 6.
    Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes, Part I. I and II. Information and Computation 100 (1989)Google Scholar
  7. 7.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide. Artima Incorporation (2008)Google Scholar
  8. 8.
    Okasaki, C.: Purely Functional Data Structures. Cambridge University Press (1998)Google Scholar
  9. 9.
    Parrow, J.: An Introduction to the pi-Calculus. In: Handbook of Process Algebra, pp. 479–543. Elsevier (2001)Google Scholar
  10. 10.
    Pierce, B.: Types and Programming Languages. MIT Press (2002)Google Scholar
  11. 11.
    Pierce, B.C., Turner, D.N.: Pict: A Programming Language Based on the Pi-Calculus. In: Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press (1997)Google Scholar
  12. 12.
    Pierce, B.C., Turner, D.N.: Pict: a programming language based on the Pi-Calculus, pp. 455–494. MIT Press, Cambridge (2000), Google Scholar
  13. 13.
    Schinz, M., Haller, P.: A Scala Tutorial for Java Programmers (2009),
  14. 14.
    Welch, P., Barnes, F.: Communicating Mobile Processes: introducing occam-pi. In: 25 Years of CSP. Springer, Heidelberg (2005)Google Scholar
  15. 15.
    Zhou, J., Zeng, G.: Describing and reasoning on the composition of grid services using pi-calculus. In: International Conference on Computer and Information Technology, p. 48 (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Pedro Matiello
    • 1
  • Ana C. V. de Melo
    • 1
  1. 1.Department of Computer ScienceUniversity of São PauloSão PauloBrazil

Personalised recommendations