A virtual machine for multi-language execution (2002) [6 citations — 5 self]
Abstract:
This paper presents the architecture of a virtual machine designed specifically for the execution of multiple languages, which we call Seam. The architecture consists of a number of generic components, usable by all languages, and of a number of interfaces for which implementations have to be provided by language implementors. Our contribution is the identification of the generic services and the clean design for the parameterization over their language-specific aspects. The goal of Seam is to provide both for ample reuse and simple language implementation, concerning both compilers and runtime 1 components, and to be a platform for language interoperation. We have implemented a prototype version of Seam and validated it with two language implementations. We present a full running implementation of Alice and a nave implementation of a Java Virtual Machine running on Seam. The paper presents first implementation e#ort and performance results for the prototype.
Citations
| 93 | Compiling Standard ML to Java bytecodes – Benton, Kennedy, et al. - 1998 |
| 74 | Report on the Programming Language Haskell – Hudak, Wadler - 1992 |
| 13 | Kawa: Compiling Scheme to Java – Bothner - 1998 |
| 10 | Guardians in a generation-based garbage collector – Dybvig, Bruggeman, et al. - 1993 |
| 9 | Extensible virtual machines – Harris - 2001 |
| 5 | Compiling Mercury to the .NET common language runtime – Dowd, Henderson, et al. - 2001 |
| 4 | vmgen --- A generator of e#cient virtual machine interpreters. Software---Practice and Experience – Ertl, Gregg, et al. - 2002 |
| 3 | Compiling SML to Java bytecode – Bertelsen - 1998 |
| 2 | Alice in the land of Oz---an interoperability-based implementation of a functional language on top of a relational language – Kornstaedt - 1995 |
| 1 | Active Oberon for .NET: An exercise in object model mapping – Gutknecht - 2001 |

