Abstract
PiLib is a library written in Scala that implements the concurrency constructs of the \(\pi \mbox{-calculus}\). Some features of the programming language Scala, examined in the paper, make it possible to use almost the same syntax as in the \(\pi \mbox{-calculus}\). The advantages of this library with respect to a simple \(\pi \mbox{-calculus}\) interpreter are that we can transmit any value along names, we can get control over them using the type system, and we have access to the full power of Scala in terms of expressiveness and libraries.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Reppy, J.: CML: A higher-order concurrent language. In: Programming Language Design and Implementation, SIGPLAN, pp. 293–299. ACM, New York (1991)
INMOS Ltd.: OCCAM Programming Manual. Prentice-Hall International (1984)
Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21, 666–677 (1978); Reprinted in Distributed Computing: Concepts and Implementations” edited by McEntire. O’Reilly and Larson, IEEE (1984)
Pierce, B.C., Turner, D.N.: Pict: A programming language based on the pi-calculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, pp. 455–494. MIT Press, Cambridge (2000)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (Parts I and II). Information and Computation 100, 1–77 (1992)
Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)
Giacalone, A., Mishra, P., Prasad, S.: Facile: A symmetric integration of concurrent and functional programming. International Journal of Parallel Programming 18, 121–160 (1989)
Conchon, S., Fessant, F.L.: Jocaml: Mobile agents for Objective-Caml. In: First International Symposium on Agent Systems and Applications (ASA 1999)/Third International Symposium on Mobile Agents (MA 1999), Palm Springs, CA, USA (1999)
Odersky, M.: Functional nets. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Proceedings of the 16th European Conference on Object-Oriented Programming, pp. 415–440. Springer, Heidelberg (2002)
Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the joincalculus. In: Principles of Programming Languages (1996)
Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)
Smolka, G., Henz, M., Würtz, J.: Object-oriented concurrent constraint programming in Oz. In: van Hentenryck, P., Saraswat, V. (eds.) Principles and Practice of Constraint Programming, pp. 29–48. The MIT Press, Cambridge (1995)
Arvind, Gostelow, K., Plouffe, W.: The ID-Report: An Asynchronous Programming Language and Computing Machine. Technical Report 114, University of California, Irvine, California, USA (1978)
Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: ACM (ed.) Conference record of POPL 1996, 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium, St. Petersburg Beach, Florida, January 21-24, pp. 295–308. ACM Press, New York (1996)
Barth, P.S., Nikhil, R.S., Arvind: M-structures: Extending a parallel, non-strict, functional language with state. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 538–568. Springer, Heidelberg (1991)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, Second Edition. Java Series, Sun Microsystems (2000); ISBN 0-201-31008-2
Box, D.: Essential .NET. The Common Language Runtime, vol. I. Addison Wesley, Reading (2002)
Hoare, C.A.R.: Monitors: an operating system structuring concept. Communications of the ACM 17, 549–557 (1974)
Hansen, P.B.: The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 199–207 (1975)
Bischof, H., Gorlatch, S., Leshchinskiy, R.: Generic parallel programming using c++ templates and skeletons. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 107–126. Springer, Heidelberg (2004)
Kuchen, H.: Optimizing sequences of skeleton calls. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 254–273. Springer, Heidelberg (2004)
Odersky, M.: Report on the Programming Language Scala (2002), http://lampwww.epfl.ch/scala/
Cremet, V.: Pilib (2003), http://lampwww.epfl.ch/~cremet
Palamidessi, C.: Comparing the expressive power of the synchronous and the asynchronous pi-calculus. In: Proc. of the 24th ACM Symposium on Principles of Programming Languages (POPL), pp. 256–265. ACM, New York (1997)
Palamidessi, C.: Comparing the expressive power of the synchronous and the asynchronous pi-calculus. Mathematical Structures in Computer Science 13, 685–719 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Cremet, V., Odersky, M. (2004). PiLib: A Hosted Language for Pi-Calculus Style Concurrency. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds) Domain-Specific Program Generation. Lecture Notes in Computer Science, vol 3016. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25935-0_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-25935-0_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22119-7
Online ISBN: 978-3-540-25935-0
eBook Packages: Springer Book Archive