Implementing Jalapeno in Java

Citation
B. Alpern et al., Implementing Jalapeno in Java, ACM SIGPL N, 34(10), 1999, pp. 314-324
Citations number
18
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM SIGPLAN NOTICES
ISSN journal
15232867 → ACNP
Volume
34
Issue
10
Year of publication
1999
Pages
314 - 324
Database
ISI
SICI code
1523-2867(199910)34:10<314:IJIJ>2.0.ZU;2-L
Abstract
Jalapeno is a virtual machine for Java(TM) servers written in Java. A running Java program involves four layers of functionality: the user code , the virtual-machine, the operating system, and the hardware. By drawing t he Java / non-Java boundary below the virtual machine rather than above it, Jalapeno reduces the boundary-crossing overhead and opens up more opportun ities for optimization. To get Jalapeno started, a boot image of a working Jalapeno virtual machine is concocted and written to a file. Later, this file can be loaded into me mory and executed. Because the boot image consists entirely of Java objects , it can be concocted by a Java program that runs in essay JVM. This progra m uses reflection to convert the boot image into Jalapeno's object format. A special MAGIC class allows unsafe casts and direct access to the hardware . Methods of this class are recognized by Jalapeno's three compilers, which ignore their bytecodes and emit special-purpose machine code. User code wi ll not be allowed to call MAGIC methods so Java's integrity is preserved. A small non-Java program is used to start up a boot image and as an interfa ce to the operating system. Java's programming features - object orientation, type safety, automatic me mory management - greatly facilitated development of Jalapeno. However, we also discovered some of the langauge's limitations.