Flexible Language Interoperability
(2007) In Journal of Object Technology 6(8). p.95-116- 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 objectoriented 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... (More)
- 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 objectoriented 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. (Less)
Please use this url to cite or link to this publication:
https://lup.lub.lu.se/record/772919
- author
- Ekman, Torbjörn LU ; Mechlenborg, Peter and Schultz, Ulrik Pagh
- organization
- publishing date
- 2007
- type
- Contribution to journal
- publication status
- published
- subject
- in
- Journal of Object Technology
- volume
- 6
- issue
- 8
- pages
- 95 - 116
- publisher
- ETH, Zürich
- external identifiers
-
- scopus:36048995410
- ISSN
- 1660-1769
- language
- English
- LU publication?
- yes
- id
- 80cb0dd8-6ba0-4103-9a35-3c6a84166912 (old id 772919)
- alternative location
- http://www.jot.fm/issues/issue_2007_09/article2
- date added to LUP
- 2016-04-01 15:36:05
- date last changed
- 2022-01-28 06:11:01
@article{80cb0dd8-6ba0-4103-9a35-3c6a84166912, 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 objectoriented 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.<br/><br> <br/><br> 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.}}, author = {{Ekman, Torbjörn and Mechlenborg, Peter and Schultz, Ulrik Pagh}}, issn = {{1660-1769}}, language = {{eng}}, number = {{8}}, pages = {{95--116}}, publisher = {{ETH, Zürich}}, series = {{Journal of Object Technology}}, title = {{Flexible Language Interoperability}}, url = {{http://www.jot.fm/issues/issue_2007_09/article2}}, volume = {{6}}, year = {{2007}}, }