Standard

A flexible framework for studying trace-based just-in-time compilation. / Vandercammen, Maarten; Marr, Stefan; De Roover, Coen.

In: Computer Languages, Systems and Structures, Vol. 51, 01.01.2018, p. 22-47.

Research output: Contribution to journalArticle

Harvard

APA

Vancouver

Author

BibTeX

@article{2a1f100c528a485b816f749fe4e8d419,
title = "A flexible framework for studying trace-based just-in-time compilation",
abstract = "Just-in-time compilation has proven an effective, though effort-intensive, choice for realizing performant language runtimes. Recently introduced JIT compilation frameworks advocate applying meta-compilation techniques such as partial evaluation or meta-tracing on simple interpreters to reduce the implementation effort. However, such frameworks are few and far between. Designed and highly optimized for performance, they are difficult to experiment with. We therefore present STRAF, a minimalistic yet flexible Scala framework for studying trace-based JIT compilation. STRAF is sufficiently general to support a diverse set of language interpreters, but also sufficiently extensible to enable experiments with trace recording and optimization. We demonstrate the former by plugging two different interpreters into STRAF. We demonstrate the latter by extending STRAF with e.g., constant folding and type-specialization optimizations, which are commonly found in dedicated trace-based JIT compilers. The evaluation shows that STRAF is suitable for prototyping new techniques and formalisms in the domain of trace-based JIT compilation.",
keywords = "Operational semantics, Optimization, Trace-based JIT compilation",
author = "Maarten Vandercammen and Stefan Marr and {De Roover}, Coen",
year = "2018",
month = "1",
day = "1",
doi = "10.1016/j.cl.2017.07.005",
language = "English",
volume = "51",
pages = "22--47",
journal = "Computer Languages, Systems and Structures",
issn = "1477-8424",
publisher = "Elsevier Limited",

}

RIS

TY - JOUR

T1 - A flexible framework for studying trace-based just-in-time compilation

AU - Vandercammen, Maarten

AU - Marr, Stefan

AU - De Roover, Coen

PY - 2018/1/1

Y1 - 2018/1/1

N2 - Just-in-time compilation has proven an effective, though effort-intensive, choice for realizing performant language runtimes. Recently introduced JIT compilation frameworks advocate applying meta-compilation techniques such as partial evaluation or meta-tracing on simple interpreters to reduce the implementation effort. However, such frameworks are few and far between. Designed and highly optimized for performance, they are difficult to experiment with. We therefore present STRAF, a minimalistic yet flexible Scala framework for studying trace-based JIT compilation. STRAF is sufficiently general to support a diverse set of language interpreters, but also sufficiently extensible to enable experiments with trace recording and optimization. We demonstrate the former by plugging two different interpreters into STRAF. We demonstrate the latter by extending STRAF with e.g., constant folding and type-specialization optimizations, which are commonly found in dedicated trace-based JIT compilers. The evaluation shows that STRAF is suitable for prototyping new techniques and formalisms in the domain of trace-based JIT compilation.

AB - Just-in-time compilation has proven an effective, though effort-intensive, choice for realizing performant language runtimes. Recently introduced JIT compilation frameworks advocate applying meta-compilation techniques such as partial evaluation or meta-tracing on simple interpreters to reduce the implementation effort. However, such frameworks are few and far between. Designed and highly optimized for performance, they are difficult to experiment with. We therefore present STRAF, a minimalistic yet flexible Scala framework for studying trace-based JIT compilation. STRAF is sufficiently general to support a diverse set of language interpreters, but also sufficiently extensible to enable experiments with trace recording and optimization. We demonstrate the former by plugging two different interpreters into STRAF. We demonstrate the latter by extending STRAF with e.g., constant folding and type-specialization optimizations, which are commonly found in dedicated trace-based JIT compilers. The evaluation shows that STRAF is suitable for prototyping new techniques and formalisms in the domain of trace-based JIT compilation.

KW - Operational semantics

KW - Optimization

KW - Trace-based JIT compilation

UR - http://www.scopus.com/inward/record.url?scp=85028067188&partnerID=8YFLogxK

U2 - 10.1016/j.cl.2017.07.005

DO - 10.1016/j.cl.2017.07.005

M3 - Article

VL - 51

SP - 22

EP - 47

JO - Computer Languages, Systems and Structures

JF - Computer Languages, Systems and Structures

SN - 1477-8424

ER -

ID: 32674465