Advertisement

PiLib: A Hosted Language for Pi-Calculus Style Concurrency

  • Vincent Cremet
  • Martin Odersky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3016)

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.

Keywords

Mobile Agent Function Choice Concurrent Programming Host Language Continuation Function 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Reppy, J.: CML: A higher-order concurrent language. In: Programming Language Design and Implementation, SIGPLAN, pp. 293–299. ACM, New York (1991)Google Scholar
  2. 2.
    INMOS Ltd.: OCCAM Programming Manual. Prentice-Hall International (1984)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (Parts I and II). Information and Computation 100, 1–77 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)zbMATHGoogle Scholar
  7. 7.
    Giacalone, A., Mishra, P., Prasad, S.: Facile: A symmetric integration of concurrent and functional programming. International Journal of Parallel Programming 18, 121–160 (1989)CrossRefGoogle Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    Odersky, M.: Functional nets. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the joincalculus. In: Principles of Programming Languages (1996)Google Scholar
  12. 12.
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)CrossRefGoogle Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, Second Edition. Java Series, Sun Microsystems (2000); ISBN 0-201-31008-2Google Scholar
  18. 18.
    Box, D.: Essential .NET. The Common Language Runtime, vol. I. Addison Wesley, Reading (2002)Google Scholar
  19. 19.
    Hoare, C.A.R.: Monitors: an operating system structuring concept. Communications of the ACM 17, 549–557 (1974)zbMATHCrossRefGoogle Scholar
  20. 20.
    Hansen, P.B.: The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 199–207 (1975)Google Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    Odersky, M.: Report on the Programming Language Scala (2002), http://lampwww.epfl.ch/scala/
  24. 24.
    Cremet, V.: Pilib (2003), http://lampwww.epfl.ch/~cremet
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    Palamidessi, C.: Comparing the expressive power of the synchronous and the asynchronous pi-calculus. Mathematical Structures in Computer Science 13, 685–719 (2003)CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Vincent Cremet
    • 1
  • Martin Odersky
    • 1
  1. 1.École Polytechnique Fédérale de LausanneLausanneSwitzerland

Personalised recommendations