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 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 naive implementation of a Java Virtual Machine running on SEAM. The paper presents first implementation effort and performance results for the prototype.
Download PDF Show BibTeX
Login to edit