HPCN-Europe 2001: High-Performance Computing and Networking pp 613-620 | Cite as
Implementing an Efficient Java Interpreter
Abstract
The Java virtual machine (JVM) is usually implemented with an interpreter or just-in-time (JIT) compiler. JIT compilers provide the best performance, but must be substantially rewritten for each architecture they are ported to. Interpreters are easier to develop and maintain, and can be ported to new architectures with almost no changes. The weakness of interpreters is that they are much slower than JIT compilers. This paper describes work in progress on a highly efficient Java interpreter. We describe the main features that make our interpreter efficient. Our initial experimental results show that an interpreter-based JVM may be only 1.9 times slower than a compiler-based JVM for some important applications.
Keywords
Translation Time Interpreter Generator Machine Instruction Java Virtual Machine Preliminary Experimental ResultPreview
Unable to display preview. Download preview PDF.
References
- Bel73.J.R. Bell. Threaded code. Communications of the ACM, 16(6):370–372, 1973.CrossRefGoogle Scholar
- Ert95.M. Anton Ertl. Stack caching for interpreters. In SIGPLAN’95 Conference on Programming Language Design and Implementation, pages 315–327, 1995.Google Scholar
- HA00.Jan Hoogerbrugge and Lex Augusteijn. Pipelined Java virtual machine interpreters. In Proceedings of the 9th International Conference on Compiler Construction (CC’00). Springer LNCS, 2000.Google Scholar
- KG97.Andreas Krall and Reinhard Grafl. CACAO-a 64_bit JavaVM just-in-time compiler. Concurrency: Practice and Experience, 9(11):1017–1030, 1997.CrossRefGoogle Scholar
- Kra98.Andreas Krall. Efficient JavaVM just-in-time compilation. In Proceedings of the 1998 International Conference of Parallel Architectures and Compilation Techniques, pages 205–212. IEEE Computer Society, October 1998.Google Scholar
- Pro95.Todd Proebsting. Optimising an ANSI C interpreter with superoperators. In Proceedings of Principles of Programming Languages (POPL’95), pages 322–342, 1995.Google Scholar