Skip to main content

PiLib: A Hosted Language for Pi-Calculus Style Concurrency

  • Chapter
Domain-Specific Program Generation

Part of the book series: Lecture Notes in Computer Science ((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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  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. INMOS Ltd.: OCCAM Programming Manual. Prentice-Hall International (1984)

    Google Scholar 

  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. 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. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (Parts I and II). Information and Computation 100, 1–77 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  6. Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  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)

    Article  Google Scholar 

  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. Odersky, M.: Functional nets. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  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. Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the joincalculus. In: Principles of Programming Languages (1996)

    Google Scholar 

  12. Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)

    Google Scholar 

  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. 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. 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)

    Chapter  Google Scholar 

  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. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, Second Edition. Java Series, Sun Microsystems (2000); ISBN 0-201-31008-2

    Google Scholar 

  18. Box, D.: Essential .NET. The Common Language Runtime, vol. I. Addison Wesley, Reading (2002)

    Google Scholar 

  19. Hoare, C.A.R.: Monitors: an operating system structuring concept. Communications of the ACM 17, 549–557 (1974)

    Article  MATH  Google Scholar 

  20. Hansen, P.B.: The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 199–207 (1975)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  23. Odersky, M.: Report on the Programming Language Scala (2002), http://lampwww.epfl.ch/scala/

  24. Cremet, V.: Pilib (2003), http://lampwww.epfl.ch/~cremet

  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)

    Chapter  Google Scholar 

  26. Palamidessi, C.: Comparing the expressive power of the synchronous and the asynchronous pi-calculus. Mathematical Structures in Computer Science 13, 685–719 (2003)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics