Debugging optimized code with dynamic deoptimization
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Truffle: a self-optimizing runtime system
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We present a new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allowing new languages to be implemented with modest additional effort. The approach (named Truffle) relies on tree-rewriting abstract syntax tree (AST) interpretation, together with an optimizing compiler (named Graal) that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. We illustrate the concepts of Truffle by the means of our open-source implementation of Python (named ZipPy). To show that Truffle supports a variety of programming language paradigms, we also present prototype implementations of other languages.