Truffle: a self-optimizing runtime system
暂无分享,去创建一个
We present Truffle, a novel framework for implementing managed languages in Java™. The language implementer writes an AST interpreter, which is integrated in our framework that allows tree rewriting during AST interpretation. Tree rewrites incorporate type feedback and other profiling information into the tree, thus specializing the tree and augmenting it with run-time information. When the tree reaches a stable state, partial evaluation compiles the tree into optimized machine code. The partial evaluation is done by Graal, the just-in-time compiler of our Java VM (a variation of the Java HotSpot VM). To show that Truffle supports a variety of programming language paradigms, we present prototype implementations of JavaScript (a dynamically typed programming language) and J (an array programming language).
[1] Craig Chambers,et al. Debugging optimized code with dynamic deoptimization , 1992, PLDI '92.
[2] Carl Friedrich Bolz,et al. Tracing the meta-level: PyPy's tracing JIT compiler , 2009, ICOOOLPS@ECOOP.
[3] Christian Wimmer,et al. Self-optimizing AST interpreters , 2012, DLS.
[4] Samuele Pedroni,et al. PyPy's approach to virtual machine construction , 2006, OOPSLA '06.