Accelerating iterators in optimizing AST interpreters
-
Published:2014-12-31
Issue:10
Volume:49
Page:727-743
-
ISSN:0362-1340
-
Container-title:ACM SIGPLAN Notices
-
language:en
-
Short-container-title:SIGPLAN Not.
Author:
Zhang Wei1,
Larsen Per1,
Brunthaler Stefan1,
Franz Michael1
Affiliation:
1. University of California, Irvine, Irvine, CA, USA
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, it is crucial that AST optimizations do not prevent subsequent optimizations. Our system was carefully designed to avoid this problem. We report an average speedup of 3.58x for generator-bound programs. As a result, using generators no longer has downsides and programmers are free to enjoy their upsides.
Funder
Division of Computing and Communication Foundations
Oracle
Defense Advanced Research Projects Agency
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference26 articles.
1. Project Euler: Python Solutions. http://http://www.s-anand.net/euler.html/. Project Euler: Python Solutions. http://http://www.s-anand.net/euler.html/.
2. Aspects Of Implementing CLU
3. Tracing the meta-level
4. Lecture Notes in Computer Science;Brunthaler S.,2010
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献