Abstract
Jalapeño is a virtual machine for Java™ 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 the Java / non-Java boundary below the virtual machine rather than above it, Jalapeño reduces the boundary-crossing overhead and opens up more opportunities for optimization. To get Jalapeño started, a boot image of a working Jalapeño virtual machine is concocted and written to a file. Later, this file can be loaded into memory and executed. Because the boot image consists entirely of Java objects, it can be concocted by a Java program that runs in any JVM. This program uses reflection to convert the boot image into Jalapeño's object format. A special MAGIC class allows unsafe casts and direct access to the hardware. Methods of this class are recognized by Jalapeño's three compilers, which ignore their bytecodes and emit special-purpose machine code. User code will 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 interface to the operating system. Java's programming features - object orientation, type safety, automatic memory management - greatly facilitated development of Jalapeño. However, we also discovered some of the langauge's limitations. © 1999 ACM.
Cite
CITATION STYLE
Alpern, B., Barton, J. J., Hummel, S. F., Ngo, T., Shepherd, J. C., Attanasio, C. R., … Smith, S. (1999). Implementing Jalapeño in Java. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 34(10), 314–324. https://doi.org/10.1145/320385.320418
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.