@MISC{Gough01stackingthem, author = {K John Gough}, title = {Stacking them up: a Comparison of Virtual Machines}, year = {2001} }
Years of Citing Articles
Bookmark
OpenURL
Abstract
A popular trend in current software technology is to
gain program portability by compiling programs to an in-
termediate form based on an abstract machine deï¬nition.
Such approaches date back at least to the 1970s, but have
achieved new impetus based on the current popularity of
the programming language Java. Implementations of lan-
guage Java compile programs to bytecodes understood by
the Java Virtual Machine (JVM). More recently Microsoft
have released preliminary details of their â.NETâ platform,
which is based on an abstract machine superï¬cially similar
to the JVM. In each case program execution is normally me-
diated by a just in time compiler (JIT), although in principle interpretative execution is also possible.
Although these two competing technologies share some
common aims the objectives of the virtual machine designs
are signiï¬cantly different. In particular, the ease with which embedded systems might use small-footprint versions of these virtual machines depends on detailed properties of the machine deï¬nitions.
In this study, a compiler was implemented which can
produce output code that may be run on either the JVM
or .NET platforms. The compiler is available in the pub-
lic domain, and facilitates comparisons to be made both at
compile time and at runtime.