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.
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
Objective CAML Home Page, http://pauillac.inria.fr/ocaml
The JoCaml Home Page, http://pauillac.inria.fr/jocaml
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)
Agha, G.: ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)
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)
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)
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)
Fournet, C., Maranget, L.: The Join-Calculus Language (release 1.02). Institute National de Recherche en Informatique et Automatique (June 1997)
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)
Janson, S.: AKL - A Multiparadigm Programming Language. PhD thesis, SICS Swedish Institute of Computer Science, Uppsala University (1994)
Jones, S.: Implementing Lazy Functional Languages on Stock Hardware: the Spineless Tagless G-machine. Journal of Functional Programming 2(2), 127–202 (1992)
Kobayashi, N.: Quasi-Linear Types. In: 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1999, pp. 29–42 (1999)
Kobayashi, N., Pierce, B., Turner, D.: Linearity and the π-calculus. In: ACM Symposium on Principles of Programming Languages (1996)
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
Lopes, L., Vasconcelos, V.: An Abstract Machine for an Object-Calculus. Technical report, DCC-FC LIACC, Universidade do Porto (May 1997)
Mehl, M., Scheidhauer, R., Schulte, C.: An Abstract Machine for Oz. Technical report, German Research Center for Artificial Intelligence (DFKI) (June 1995)
Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes (parts I and II). Information and Computation 100, 1–77 (1992)
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)
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)
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)
Sangiorgi, D.: The name discipline of receptiveness. In: Degano, P., Gorrieri, R., Marchetti-Spaccamela, A. (eds.) ICALP 1997. LNCS, vol. 1256. Springer, Heidelberg (1997)
Turner, D.: The Polymorphic Pi-calculus: Theory and Implementation. PhD thesis, University of Edinburgh (1995)
Vasconcelos, V., Bastos, R.: Core-TyCO - The Language Definition. Technical Report TR-98-3, DI / FCUL (March 1998)
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)
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)
Walker, D.: Objects in the π-calculus. Journal of Information and Computation 116(2), 253–271 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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