Refreshments 3:20 p.m.
Abstract
Managed Runtime Environments (MREs), such as the JVM and the CLI, provide
attractive environments for program execution by providing portability and
safety, via the use of a bytecode language and automatic memory management, as
well as good performance, via just-in-time (JIT) compilation. Nevertheless,
developing a fully featured MRE is a herculean task. As a result, new
languages cannot easily take advantage of the benefits of MREs, and it is
difficult to experiment with extensions of existing MRE-based languages.
This talk will describe and evaluates VMKit, a first attempt to build a common
substrate that eases the development of high-level MREs. We have successfully
used VMKit to build two MREs: a Java Virtual Machine and a Common Language
Runtime. An extensive study of this infrastructure assesses the ease of
implementing new MREs or MRE extensions and evaluates the resulting
performance. In particular, it took one person only one month to develop a
Common Language Runtime using VMKit. VMKit furthermore has performance
comparable to the well established open source MREs Cacao, Apache Harmony and
Mono, and is 1.2 to 3 times slower than JikesRVM on most of the DaCapo
benchmarks.