Implementing an Efficient Java Interpreter

  • David Gregg
  • M. Anton Ertl
  • Andreas Krall
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2110)


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.


Translation Time Interpreter Generator Machine Instruction Java Virtual Machine Preliminary Experimental Result 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Bel73.
    J.R. Bell. Threaded code. Communications of the ACM, 16(6):370–372, 1973.CrossRefGoogle Scholar
  2. Ert95.
    M. Anton Ertl. Stack caching for interpreters. In SIGPLAN’95 Conference on Programming Language Design and Implementation, pages 315–327, 1995.Google Scholar
  3. 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
  4. 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
  5. 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
  6. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • David Gregg
    • 1
  • M. Anton Ertl
    • 2
  • Andreas Krall
    • 2
  1. 1.Department of Computer ScienceTrinity CollegeDublin 2Ireland
  2. 2.Institut für ComputersprachenWien

Personalised recommendations