ZipPy on Truffle: A Fast and Simple Implementation of Python
C. Wimmer, and S. Brunthaler. Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, &\#38; Applications: Software for Humanity, page 17--18. ACM, (2013)
DOI: 10.1145/2508075.2514572
Abstract
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.
%0 Conference Paper
%1 Wimmer:2013:ZTF
%A Wimmer, Christian
%A Brunthaler, Stefan
%B Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, &\#38; Applications: Software for Humanity
%D 2013
%I ACM
%K Python Truffle ZipPy
%P 17--18
%R 10.1145/2508075.2514572
%T ZipPy on Truffle: A Fast and Simple Implementation of Python
%X 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.
%@ 978-1-4503-1995-9
@inproceedings{Wimmer:2013:ZTF,
abstract = {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.},
acmid = {2514572},
added-at = {2014-08-11T12:46:05.000+0200},
author = {Wimmer, Christian and Brunthaler, Stefan},
biburl = {https://www.bibsonomy.org/bibtex/2b53e1769d52a033fb0f4bae4128e3d4e/gron},
booktitle = {Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, \&\#38; Applications: Software for Humanity},
description = {ZipPy on truffle},
doi = {10.1145/2508075.2514572},
interhash = {f33237ca228513747e55c18d6d7cb000},
intrahash = {b53e1769d52a033fb0f4bae4128e3d4e},
isbn = {978-1-4503-1995-9},
keywords = {Python Truffle ZipPy},
location = {Indianapolis, Indiana, USA},
numpages = {2},
pages = {17--18},
publisher = {ACM},
series = {SPLASH '13},
timestamp = {2014-08-11T12:46:05.000+0200},
title = {ZipPy on Truffle: A Fast and Simple Implementation of Python},
year = 2013
}