2003 · 67 citations · 29 references
ComputingComputer ScienceCompilersProgramming LanguagesSystems ProgrammingCompiler ConstructionInterpreter DesignJust-in-time CompilationProgramming Language ImplementationRuntime SystemsBytecode InterpretationBytecode InterpretersBytecode RepresentationDynamic CompilationInterpreter OptimizationInterpretersJust-in-time Compilation For Dynamic LanguagesLanguage Implementation
For domain specific languages, "scripting languages", dynamic languages, and for virtual machine-based languages, the most straightforward implementation strategy is to write an interpreter. A simple interpreter consists of a loop that fetches the next bytecode, dispatches to the routine handling that bytecode, then loops. There are many ways to improve upon this simple mechanism, but as long as the execution of the program is driven by a representation of the program other than as a stream of native instructions, there will be some "interpretive overhead".There is a long history of approaches to removing interpretive overhead from programming language implementations. In practice, what often happens is that, once an interpreted language becomes popular, pressure builds to improve performance until eventually a project is undertaken to implement a native Just In Time (JIT) compiler for the language. Implementing a JIT is usually a large effort, affects a significant part of the existing language implementation, and adds a significant amount of code and complexity to the overall code base.In this paper, we present an innovative approach that dynamically removes much of the interpreted overhead from language implementations, with minimal instrumentation of the original interpreter. While it does not give the performance improvements of hand-crafted native compilers, our system provides an appealing point on the language implementation spectrum.
29
The Paradyn parallel performance measurement tool
Barton P. Miller, Mary Callaghan, Jon Cargille et al. · Computer · 1995 · 828 citations
Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerjia · ACM SIGPLAN Notices · 2011 · 739 citations
Shade: a fast instruction-set simulator for execution profiling
Bob Cmelik, David Keppel · 1994 · 642 citations
Efficient implementation of the smalltalk-80 system
L. Peter Deutsch, Allan M. Schiffman · 1984 · 589 citations