ZipPy on Truffle: A Fast and Simple Implementation of PythonChristian Wimmer, Stefan Brunthaler: ZipPy on Truffle: A Fast and Simple Implementation of Python. Demonstration at Systems, Programming, Languages and Applications: Software for Humanity, pages 17–18. ACM Press, 2013. doi:10.1145/2508075.2514572
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.