Optimizing an ANSI C interpreter with superoperators
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stack caching for interpreters
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Optimizing direct threaded code by selective inlining
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A methodology for benchmarking Java Grande applications
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
A code compression system based on pipelined interpreters
Software—Practice & Experience
Communications of the ACM
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
sEc: A Portable Interpreter Optimizing Technique for Embedded Java Virtual Machine
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
Vmgen: a generator of efficient virtual machine interpreters
Software—Practice & Experience
Efficient JavaVM Just-in-Time Compilation
PACT '98 Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques
SableVM: a research framework for the efficient execution of java bytecode
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Code sharing among states for stack-caching interpreter
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Hi-index | 0.00 |
The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and low memory requirements. In this paper we describe a new interpreter core for CVM, Sun Microsystem's JVM for connected devices and embedded systems. The interpreter core is portable and programmed in C. An interpreter generator is used to apply a number of optimisations automatically to the source code. Experimental results show that on benchmarks that spend almost all their time in the interpreter (rather than the run time system) it is 28% to 58% faster than the original CVM interpreter, and is only 5% to 9% slower than the highly-sophisticated, hand-tuned, assembly language interpreter in Sun's desktop JVM.