Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2015
DOI: 10.1145/2814270.2814275
|View full text |Cite
|
Sign up to set email alerts
|

Tracing vs. partial evaluation: comparing meta-compilation approaches for self-optimizing interpreters

Abstract: Tracing and partial evaluation have been proposed as metacompilation techniques for interpreters to make just-in-time compilation language-independent. They promise that programs executing on simple interpreters can reach performance of the same order of magnitude as if they would be executed on state-of-the-art virtual machines with highly optimizing just-in-time compilers built for a specific language. Tracing and partial evaluation approach this metacompilation from two ends of a spectrum, resulting in diff… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
8
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 23 publications
(8 citation statements)
references
References 31 publications
0
8
0
Order By: Relevance
“…Second, a compilation unit has the complete control flow of a target method. Therefore, methodbased compilation can be applied not only for various types of programs and also for programs that are not suitable for trace-based compilation [23,24]. However, when a method-based compiler compiles a method with many biased branches, the compiled code includes colds spots of the method.…”
Section: Trade-offs Between Trace-based Compilation and Method-based ...mentioning
confidence: 99%
See 2 more Smart Citations
“…Second, a compilation unit has the complete control flow of a target method. Therefore, methodbased compilation can be applied not only for various types of programs and also for programs that are not suitable for trace-based compilation [23,24]. However, when a method-based compiler compiles a method with many biased branches, the compiled code includes colds spots of the method.…”
Section: Trade-offs Between Trace-based Compilation and Method-based ...mentioning
confidence: 99%
“…One significant advantage of a meta-tracing JIT compilation strategy depicted by RPython is that it is more comfortable to write interpreters in comparison to the abstractsyntax-tree (AST) rewriting specialization in Truffle. In [24], Marr and Ducasse stated that a significant difference between RPython and Truffle is the number of optimizations a language implementer needs to apply in order to reach the same level of performance. In their experiments, SOM [19] built with RPython achieves excellent performance without adding many optimizations.…”
Section: Meta-tracing Jit Compilation Techniquementioning
confidence: 99%
See 1 more Smart Citation
“…Similarly to straf, RPython thus enables language implementers to provide a regular interpreter, annotated with certain hints to guide tracing and optimization, to benefit from the advantages of trace-based compilation without having to construct a dedicated JIT compiler for the language. RPython greatly reduces the engineering effort required by language implementers and is also successful in lifting the performance of the meta-traced interpreter to the same order of magnitude than a dedicated JIT compiler [9]. However, the complexity of RPython and its focus on performance makes it less suited for experimenting with novel trace recording or trace optimization strategies.…”
Section: Related Workmentioning
confidence: 99%
“…Moreover, a procedure that can specialize an interpreter to any input program is equivalent to a compiler. In recent years, the idea of Futamura projections has attracted more attention, and has been successfully applied to many real-world scenarios, such as building JIT compilers for dynamic languages [Bolz et al 2009;Marr and Ducasse 2015] and building query compilers for databases . The question here is can we apply Futamura projections to an abstract interpreter and obtain a compiler for abstract interpretation?…”
mentioning
confidence: 99%