PiStache: Implementing π-Calculus in Scala
- 314 Downloads
Abstract
π-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.
Keywords
Pi-calculus Scala reconfigurationPreview
Unable to display preview. Download preview PDF.
References
- 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.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.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.Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM (1978)Google Scholar
- 5.Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press (1999)Google Scholar
- 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.Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide. Artima Incorporation (2008)Google Scholar
- 8.Okasaki, C.: Purely Functional Data Structures. Cambridge University Press (1998)Google Scholar
- 9.Parrow, J.: An Introduction to the pi-Calculus. In: Handbook of Process Algebra, pp. 479–543. Elsevier (2001)Google Scholar
- 10.Pierce, B.: Types and Programming Languages. MIT Press (2002)Google Scholar
- 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.Pierce, B.C., Turner, D.N.: Pict: a programming language based on the Pi-Calculus, pp. 455–494. MIT Press, Cambridge (2000), http://portal.acm.org/citation.cfm?id=345868.345924 Google Scholar
- 13.Schinz, M., Haller, P.: A Scala Tutorial for Java Programmers (2009), http://www.scala-lang.org/node/198
- 14.Welch, P., Barnes, F.: Communicating Mobile Processes: introducing occam-pi. In: 25 Years of CSP. Springer, Heidelberg (2005)Google Scholar
- 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