Skip to main content

A Virtual Machine for a Process Calculus

  • Conference paper
Principles and Practice of Declarative Programming (PPDP 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1702))

Abstract

Despite extensive theoretical work on process-calculi, virtual machine specifications and implementations of actual computational models are still scarce.

This paper presents a virtual machine for a strongly typed, polymorphic, concurrent, object-oriented programming language based on the TyCO process calculus. The system runs byte-code files, assembled from an intermediate assembly language representation, which is in turn generated by a compiler. Code optimizations are provided by the compiler coupled with a type-inference system. The design and implementation of the virtual machine focuses on performance, compactness, and architecture independence with a view to mobile computing. The assembly code emphasizes readability and efficient byte code generation. The byte code has a simple layout and is a compromise between size and performance. We present some performance results and compare them to other languages such as Pict, Oz, and JoCaml.

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

Access this chapter

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.

References

  1. Objective CAML Home Page, http://pauillac.inria.fr/ocaml

  2. The JoCaml Home Page, http://pauillac.inria.fr/jocaml

  3. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  4. Agha, G.: ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)

    Google Scholar 

  5. Agha, G., Hewitt, C.: Actors: A Conceptual Foundation for Concurrent Object-Oriented Programming. In: Shiver, Wegner (eds.) Research Directions on Object-Oriented Programming. MIT Press, Cambridge (1981)

    Google Scholar 

  6. Amadio, R.M.: An Asynchronous Model of Locality, Failure, and Process Mobility. In: Garlan, D., Le Métayer, D. (eds.) COORDINATION 1997. LNCS, vol. 1282, pp. 374–391. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  7. Fournet, C., Gonthier, G.: The Reflexive Chemical Abstract Machine and the Join-Calculus. In: Proceedings of the 23rd ACM Symposium on Principles of Programming Languages, pp. 372–385. ACM, New York (1996)

    Google Scholar 

  8. Fournet, C., Maranget, L.: The Join-Calculus Language (release 1.02). Institute National de Recherche en Informatique et Automatique (June 1997)

    Google Scholar 

  9. Honda, K., Tokoro, M.: An Object Calculus for Asynchronous Communication. In: America, P. (ed.) ECOOP 1991. LNCS, vol. 512, pp. 141–162. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  10. Janson, S.: AKL - A Multiparadigm Programming Language. PhD thesis, SICS Swedish Institute of Computer Science, Uppsala University (1994)

    Google Scholar 

  11. Jones, S.: Implementing Lazy Functional Languages on Stock Hardware: the Spineless Tagless G-machine. Journal of Functional Programming 2(2), 127–202 (1992)

    Article  MATH  Google Scholar 

  12. Kobayashi, N.: Quasi-Linear Types. In: 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1999, pp. 29–42 (1999)

    Google Scholar 

  13. Kobayashi, N., Pierce, B., Turner, D.: Linearity and the π-calculus. In: ACM Symposium on Principles of Programming Languages (1996)

    Google Scholar 

  14. Lopes, L., Silva, F., Figueira, A., Vasconcelos, V.: DiTyCO: An Experiment in Code Mobility from the Realm of Process Calculi. In: 5th Mobile Object Systems Workshop (1999) part of ECOOP 1999

    Google Scholar 

  15. Lopes, L., Vasconcelos, V.: An Abstract Machine for an Object-Calculus. Technical report, DCC-FC LIACC, Universidade do Porto (May 1997)

    Google Scholar 

  16. Mehl, M., Scheidhauer, R., Schulte, C.: An Abstract Machine for Oz. Technical report, German Research Center for Artificial Intelligence (DFKI) (June 1995)

    Google Scholar 

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

  18. Partain, W.: The nofib Benchmark Suite of Haskell Programs. In: Launchbury, J., Sansom, P.M. (eds.) Proceedings of Functional Programming Workshop, Workshops in Computing, pp. 195–202. Springer, Heidelberg (1992)

    Google Scholar 

  19. Pierce, B., Turner, D.: Pict: A Programming Language Based on the Pi-Calculus. Technical Report CSCI 476, Computer Science Department, Indiana University (1997); in Plotkin, G., Stirling, C., Toft e, M. (eds.) Proof, Language and Interaction: Essays in H onour of Robin Milner. MIT Press, Cambridge (1999) (to appear)

    Google Scholar 

  20. Ravara, A., Vasconcelos, V.T.: Behavioural types for a calculus of concurrent objects. In: Lengauer, C., Griebl, M., Gorlatch, S. (eds.) Euro-Par 1997. LNCS, vol. 1300, pp. 554–561. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  21. Sangiorgi, D.: The name discipline of receptiveness. In: Degano, P., Gorrieri, R., Marchetti-Spaccamela, A. (eds.) ICALP 1997. LNCS, vol. 1256. Springer, Heidelberg (1997)

    Google Scholar 

  22. Turner, D.: The Polymorphic Pi-calculus: Theory and Implementation. PhD thesis, University of Edinburgh (1995)

    Google Scholar 

  23. Vasconcelos, V., Bastos, R.: Core-TyCO - The Language Definition. Technical Report TR-98-3, DI / FCUL (March 1998)

    Google Scholar 

  24. Vasconcelos, V., Lopes, L., Silva, F.: Distribution and mobility with lexical scoping in process calculi. In: 3rd International Workshop on High-Level Concurrent Languages. Electronic Notes in Theoretical Computer Science, vol. 16. Elsevier Science Publishers, Amsterdam (1998)

    Google Scholar 

  25. Vasconcelos, V., Tokoro, M.: A Typing System for a Calculus of Objects. In: Nishio, S., Yonezawa, A. (eds.) ISOTAS 1993. LNCS, vol. 742, pp. 460–474. Springer, Heidelberg (1993)

    Google Scholar 

  26. Walker, D.: Objects in the π-calculus. Journal of Information and Computation 116(2), 253–271 (1995)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lopes, L., Silva, F., Vasconcelos, V.T. (1999). A Virtual Machine for a Process Calculus. In: Nadathur, G. (eds) Principles and Practice of Declarative Programming. PPDP 1999. Lecture Notes in Computer Science, vol 1702. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704567_15

Download citation

  • DOI: https://doi.org/10.1007/10704567_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66540-3

  • Online ISBN: 978-3-540-48164-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics