A Virtual Machine for a Process Calculus

  • Luís Lopes
  • Fernando Silva
  • Vasco T. Vasconcelos
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1702)


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.


Process-Calculus Concurrency Abstract-Machine Implementation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Objective CAML Home Page,
  2. 2.
    The JoCaml Home Page,
  3. 3.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)zbMATHGoogle Scholar
  4. 4.
    Agha, G.: ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  5. 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. 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)CrossRefGoogle Scholar
  7. 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. 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. 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)CrossRefGoogle Scholar
  10. 10.
    Janson, S.: AKL - A Multiparadigm Programming Language. PhD thesis, SICS Swedish Institute of Computer Science, Uppsala University (1994)Google Scholar
  11. 11.
    Jones, S.: Implementing Lazy Functional Languages on Stock Hardware: the Spineless Tagless G-machine. Journal of Functional Programming 2(2), 127–202 (1992)zbMATHCrossRefGoogle Scholar
  12. 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. 13.
    Kobayashi, N., Pierce, B., Turner, D.: Linearity and the π-calculus. In: ACM Symposium on Principles of Programming Languages (1996)Google Scholar
  14. 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 1999Google Scholar
  15. 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. 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. 17.
    Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes (parts I and II). Information and Computation 100, 1–77 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  18. 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. 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. 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)CrossRefGoogle Scholar
  21. 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. 22.
    Turner, D.: The Polymorphic Pi-calculus: Theory and Implementation. PhD thesis, University of Edinburgh (1995)Google Scholar
  23. 23.
    Vasconcelos, V., Bastos, R.: Core-TyCO - The Language Definition. Technical Report TR-98-3, DI / FCUL (March 1998)Google Scholar
  24. 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. 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. 26.
    Walker, D.: Objects in the π-calculus. Journal of Information and Computation 116(2), 253–271 (1995)zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Luís Lopes
    • 1
  • Fernando Silva
    • 1
  • Vasco T. Vasconcelos
    • 2
  1. 1.DCC-FC & LIACCUniversidade do PortoPortoPortugal
  2. 2.DI-FCUniversidade de LisboaLisboaPortugal

Personalised recommendations