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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
J.R. Bell. Threaded code. Communications of the ACM, 16(6):370–372, 1973.
M. Anton Ertl. Stack caching for interpreters. In SIGPLAN’95 Conference on Programming Language Design and Implementation, pages 315–327, 1995.
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.
Andreas Krall and Reinhard Grafl. CACAO-a 64_bit JavaVM just-in-time compiler. Concurrency: Practice and Experience, 9(11):1017–1030, 1997.
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.
Todd Proebsting. Optimising an ANSI C interpreter with superoperators. In Proceedings of Principles of Programming Languages (POPL’95), pages 322–342, 1995.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gregg, D., Ertl, M.A., Krall, A. (2001). Implementing an Efficient Java Interpreter. In: Hertzberger, B., Hoekstra, A., Williams, R. (eds) High-Performance Computing and Networking. HPCN-Europe 2001. Lecture Notes in Computer Science, vol 2110. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48228-8_70
Download citation
DOI: https://doi.org/10.1007/3-540-48228-8_70
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42293-8
Online ISBN: 978-3-540-48228-4
eBook Packages: Springer Book Archive