2014
DOI: 10.1145/2714064.2660223
|View full text |Cite
|
Sign up to set email alerts
|

Accelerating iterators in optimizing AST interpreters

Abstract: Generators offer an elegant way to express iterators. However, their performance has always been their Achilles heel and has prevented widespread adoption. We present techniques to efficiently implement and optimize generators. We have implemented our optimizations in ZipPy, a modern, light-weight AST interpreter based Python 3 implementation targeting the Java virtual machine. Our implementation builds on a framework that optimizes AST interpreters using just-in-time compilation. In such a system, i… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2014
2014
2024
2024

Publication Types

Select...
2
2

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(3 citation statements)
references
References 16 publications
0
3
0
Order By: Relevance
“…Complex language constructs can also be optimized. For instance Zhang et al [2014] demonstrate how to optimize Python's generators based on AST specialization and peeling of generators. Similarly, Kalibera et al [2014] use views on R vectors to realize R's complex data semantics with good performance.…”
Section: Self-optimizing Interpretersmentioning
confidence: 99%
“…Complex language constructs can also be optimized. For instance Zhang et al [2014] demonstrate how to optimize Python's generators based on AST specialization and peeling of generators. Similarly, Kalibera et al [2014] use views on R vectors to realize R's complex data semantics with good performance.…”
Section: Self-optimizing Interpretersmentioning
confidence: 99%
“…Kalibera et al [20] discussed the challenges of a self-optimizing interpreter for the R language to address the dynamic and lazy nature of R. They detail a number of structural optimizations similar to the ones discussed here, dynamic operation and variable specialization, inline caching, data type specializations, as well as a profiling-based optimization of R's view feature, which is a complex language feature that has different tradeoffs depending on the size of vectors it is used on. A similarly complex language feature that has been optimized in this context is Python's generators [30].…”
Section: Related Workmentioning
confidence: 99%
“…Besides the JavaScript implementation described in this paper, Truffle DSL is used in the open-source Python implementation ZipPy [33], the open-source R implementation FastR [15], in a Smalltalk interpreter [4], and in an experimental interpreter for JRuby [9]. They show on different use-cases similarly promising results as Truffle JavaScript.…”
Section: Current Use Of Truffle Dslmentioning
confidence: 99%