A flexible framework for studying trace-based just-in-time compilation. (January 2018)
- Record Type:
- Journal Article
- Title:
- A flexible framework for studying trace-based just-in-time compilation. (January 2018)
- Main Title:
- A flexible framework for studying trace-based just-in-time compilation
- Authors:
- Vandercammen, Maarten
Marr, Stefan
De Roover, Coen - Abstract:
- Highlights: STRAF, a minimalistic meta-compilation framework for experimenting with trace-based compilation for interpreters, is proposed. The STRAF framework enables tracing of a range of interpreters, given that these interpreters satisfy a minimal set of requirements identified in this paper. In contrast to existing meta-compilation frameworks, STRAF emphasises flexibility and extensibility over performance. To maximize flexibility of the framework, STRAF is divided in a tracing component that is fixed to the framework and a pluggable interpreter that is to be provided by the interpreter developers. The paper precisely details the workings of the framework by providing a set of formal semantics, as well as offering a practical implementation. 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 presentSTRAF, 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 andHighlights: STRAF, a minimalistic meta-compilation framework for experimenting with trace-based compilation for interpreters, is proposed. The STRAF framework enables tracing of a range of interpreters, given that these interpreters satisfy a minimal set of requirements identified in this paper. In contrast to existing meta-compilation frameworks, STRAF emphasises flexibility and extensibility over performance. To maximize flexibility of the framework, STRAF is divided in a tracing component that is fixed to the framework and a pluggable interpreter that is to be provided by the interpreter developers. The paper precisely details the workings of the framework by providing a set of formal semantics, as well as offering a practical implementation. 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 presentSTRAF, 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 intoSTRAF . We demonstrate the latter by extendingSTRAF with e.g., constant folding and type-specialization optimizations, which are commonly found in dedicated trace-based JIT compilers. The evaluation shows thatSTRAF is suitable for prototyping new techniques and formalisms in the domain of trace-based JIT compilation. … (more)
- Is Part Of:
- Computer languages, systems & structures. Volume 51(2017)
- Journal:
- Computer languages, systems & structures
- Issue:
- Volume 51(2017)
- Issue Display:
- Volume 51, Issue 2017 (2017)
- Year:
- 2017
- Volume:
- 51
- Issue:
- 2017
- Issue Sort Value:
- 2017-0051-2017-0000
- Page Start:
- 22
- Page End:
- 47
- Publication Date:
- 2018-01
- Subjects:
- Trace-based JIT compilation -- Optimization -- Operational semantics
Programming languages (Electronic computers) -- Periodicals
Computer networks -- Periodicals
Computer architecture -- Periodicals
Computer systems -- Periodicals
Langage de programmation
Réseau d'ordinateurs
Architecture d'ordinateur
Périodique électronique (Descripteur de forme)
Ressource Internet (Descripteur de forme)
005.13 - Journal URLs:
- http://www.sciencedirect.com/science/journal/14778424/40 ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.cl.2017.07.005 ↗
- Languages:
- English
- ISSNs:
- 1477-8424
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 3394.071000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 5388.xml