ACM Home Page
Please provide us with feedback. Feedback
Trace-based just-in-time type specialization for dynamic languages
Full text PdfPdf (1.22 MB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Parallelism, performance, and traces table of contents
Pages 465-478  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Andreas Gal  Mozilla Corporation, Mountain View, CA, USA
Brendan Eich  Mozilla Corporation, Mountain View, CA, USA
Mike Shaver  Mozilla Corporation, Mountain View, CA, USA
David Anderson  Mozilla Corporation, Mountain View, CA, USA
David Mandelin  Mozilla Corporation, Mountain View, CA, USA
Mohammad R. Haghighat  Intel Corporation, Santa Clara, CA, USA
Blake Kaplan  Mozilla Corporation, Mountain View, CA, USA
Graydon Hoare  Mozilla Corporation, Mountain View, CA, USA
Boris Zbarsky  Mozilla Corporation, Mountain View, CA, USA
Jason Orendorff  Mozilla Corporation, Mountain View, CA, USA
Jesse Ruderman  Mozilla Corporation, Mountain View, CA, USA
Edwin W. Smith  Adobe Corportation, San Jose, CA, USA
Rick Reitmaier  Adobe Corporation, San Jose, CA, USA
Michael Bebenita  University of California, Irvine, Irvine, CA, USA
Mason Chang  University of California, Irvine, Irvine, CA, USA
Michael Franz  University of California, Irvine, Irvine, CA, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 71,   Downloads (12 Months): 244,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542476.1542528
What is a DOI?

ABSTRACT

Dynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
LuaJIT roadmap 2008 -- http://lua-users.org/lists/lua-l/2008-02/msg00051.html.
 
2
Mozilla Firefox web browser and Thunderbird email client -- http://www.mozilla.com.
 
3
SPECJVM98 -- http://www.spec.org/jvm98/.
 
4
SpiderMonkey (JavaScript-C) Engine -- http://www.mozilla.org/js/spidermonkey/.
 
5
Surfin' Safari -- Blog Archive -- Announcing SquirrelFish Extreme -- http://webkit.org/blog/214/introducing-squirrelfish-extreme/.
 
6
7
 
8
9
 
10
11
 
12
C. Garrett, J. Dean, D. Grove, and C. Chambers. Measurement and Application of Dynamic Receiver Class Distributions. 1994.
 
13
J. Ha, M. R. Haghighat, S. Cong, and K. S. McKinley. A concurrent trace-based just-in-time compiler for javascript. Dept.of Computer Sciences, The University of Texas at Austin, TR--09--06, 2009.
 
14
B. McCloskey. Personal communication.
15
16
 
17
M. Salib. Starkiller: A Static Type Inferencer and Compiler for Python. Master's Thesis, 2004.
18
19


Collaborative Colleagues:
Andreas Gal: colleagues
Brendan Eich: colleagues
Mike Shaver: colleagues
David Anderson: colleagues
David Mandelin: colleagues
Mohammad R. Haghighat: colleagues
Blake Kaplan: colleagues
Graydon Hoare: colleagues
Boris Zbarsky: colleagues
Jason Orendorff: colleagues
Jesse Ruderman: colleagues
Edwin W. Smith: colleagues
Rick Reitmaier: colleagues
Michael Bebenita: colleagues
Mason Chang: colleagues
Michael Franz: colleagues