Abstract
Virtual machines raise the abstraction level of the execution
environment at the cost of restricting the set of supported languages.
Moreover, the ability of a language implementation to integrate with
other languages hosted on the same virtual machine typically
constrains the features of the language. In this paper, we present a highly flexible
yet efficient approach to hosting multiple programming languages on an object-oriented
virtual machine. Our approach is based on extending the interface of each class with language-specific
wrapper methods, offering each language a tailored view of a given class. This approach can be
deployed both on a statically typed virtual machine, such as the JVM, and on a
dynamic virtual machine, such as a Smalltalk virtual machine.
We have implemented our approach to language interoperability on top of a prototype
virtual machine for embedded systems based on the Smalltalk object model, which provides
interoperability for embedded versions of the Smalltalk, Java, and BETA programming
languages.
environment at the cost of restricting the set of supported languages.
Moreover, the ability of a language implementation to integrate with
other languages hosted on the same virtual machine typically
constrains the features of the language. In this paper, we present a highly flexible
yet efficient approach to hosting multiple programming languages on an object-oriented
virtual machine. Our approach is based on extending the interface of each class with language-specific
wrapper methods, offering each language a tailored view of a given class. This approach can be
deployed both on a statically typed virtual machine, such as the JVM, and on a
dynamic virtual machine, such as a Smalltalk virtual machine.
We have implemented our approach to language interoperability on top of a prototype
virtual machine for embedded systems based on the Smalltalk object model, which provides
interoperability for embedded versions of the Smalltalk, Java, and BETA programming
languages.
Original language | English |
---|---|
Journal | Journal of Object Technology |
Volume | 6 |
Issue number | 8 |
Pages (from-to) | 95-116 |
Number of pages | 22 |
ISSN | 1660-1769 |
Publication status | Published - 1. Sept 2007 |
Keywords
- language interoperability
- object-oriented programming
- virtual machine