We introduce straf, a Scala framework for recording and optimizing execution traces of an interpreter it is composed with. For interpreters that satisfy the requirements detailed in this paper, this composition requires but a small effort from the implementer to result in a trace-based JIT compiler. We describe the framework, and illustrate its composition with a Scheme interpreter that satisfies the aforementioned requirements. We benchmark the resulting trace-based JIT compiler on a set of Scheme programs. Finally, we implement an optimization to demonstrate that straf enables further experimentation in the domain.
CITATION STYLE
Vandercammen, M., Stiévenart, Q., De Meuter, W., & De Roover, C. (2017). STRAF: A scala framework for experiments in trace-based JIT compilation. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10223 LNCS, pp. 223–234). Springer Verlag. https://doi.org/10.1007/978-3-319-60074-1_10
Mendeley helps you to discover research relevant for your work.