Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation 2009
DOI: 10.1145/1542476.1542528
|View full text |Cite
|
Sign up to set email alerts
|

Trace-based just-in-time type specialization for dynamic languages

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 t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
151
0
4

Year Published

2010
2010
2023
2023

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 251 publications
(155 citation statements)
references
References 8 publications
(5 reference statements)
0
151
0
4
Order By: Relevance
“…Most instant compiler on PC platform adopt this strategy. Hotpath VM developed by Andreas Gal and others [5], Mozilla's TraceMonkey [6], Lua's LuaJIT, Python's Pypy [7] and other compilers adopt Trace-based JIT, hot code of which is divided by trace as particle size.…”
Section: __________________mentioning
confidence: 99%
See 1 more Smart Citation
“…Most instant compiler on PC platform adopt this strategy. Hotpath VM developed by Andreas Gal and others [5], Mozilla's TraceMonkey [6], Lua's LuaJIT, Python's Pypy [7] and other compilers adopt Trace-based JIT, hot code of which is divided by trace as particle size.…”
Section: __________________mentioning
confidence: 99%
“…The interpreter translates some programs into native code via compiler at the first time, and executes those code directly next time. At present, most interpreters adopt this technology such as Firfox's TraceMonkey, Lua's LuaJit and Python's Pypy [3].…”
Section: Introductionmentioning
confidence: 99%
“…Their system compiles several copies of a given procedure, each customized for one receiver type. Due to the prominence of dynamic programming languages, type specialization has been addressed by various authors, including its use in just-in-time (JIT) compilers [19]. DyC [20] is one of the software compilers considering specialization based on user control through declarative policy annotations.…”
Section: Related Workmentioning
confidence: 99%
“…SpiderMonkey and TraceMonkey by Mozilla [16], V8 by Google [18] and SquirrelFish by Apple. Internally they are very different, so the implementation of a monitor for one runtime would not be useful for the others.…”
Section: Introductionmentioning
confidence: 99%
“…Microsoft .NET [33] and Google V8 [18]), or, in a more elaborate fashion, compile only the bodies of the loops where the interpreter spends most of the time (e.g. Mozilla TraceMonkey [16] and Sun HotSpot [38]). The key point is that the parts of the program translated to native code are no longer under the step-by-step control of the VM: It is no longer able to mediate every data and control flow event, which we need for information flow (as opposed, e.g., to monitoring system calls for access control).…”
Section: Introductionmentioning
confidence: 99%