VMKit: a Substrate for Managed Runtime Environments Nicolas Geoffray Gael¨ Thomas Julia Lawall Universite´ Pierre et Marie Curie Universite´ Pierre et Marie Curie University of Copenhagen LIP6/INRIA/Regal LIP6/INRIA/Regal Universitetsparken 1 Paris, France Paris, France Copenhagen, Denmark nicolas.geoff
[email protected] [email protected] [email protected] Gilles Muller Bertil Folliot Universite´ Pierre et Marie Curie Universite´ Pierre et Marie Curie LIP6/INRIA/Regal LIP6/INRIA/Regal Paris, France Paris, France
[email protected] [email protected] Abstract 1. Introduction Managed Runtime Environments (MREs), such as the JVM and Managed runtime environments, such as the Java Virtual Machine the CLI, form an attractive environment for program execution, by (JVM) [28] or the Common Language Infrastructure (CLI) [20],1 providing portability and safety, via the use of a bytecode language are becoming the norm for executing programs in environments and automatic memory management, as well as good performance, ranging from web servers to desktops and even embedded systems. via just-in-time (JIT) compilation. Nevertheless, developing a fully An MRE executes an intermediate representation of an applica- featured MRE, including e.g. a garbage collector and JIT compiler, tion, which is portable, compact and, most important of all, can be is a herculean task. As a result, new languages cannot easily take checked to enforce safety. An MRE can in principle support many advantage of the benefits of MREs, and it is difficult to experiment languages; for example, the CLI supports languages ranging from with extensions of existing MRE based languages. the imperative language C# to the functional language F#, and the This paper describes and evaluates VMKit, a first attempt to scripting language IronPython.