Most modern languages are implemented using Virtual Machines (VMs). While the best \VMs\ use Just-In-Time (JIT) compilers to achieve good performance, \JITs\ are costly to implement, and few \VMs\ therefore come with one. The \RPython\ language allows tracing \JIT\ \VMs\ to be automatically created from an interpreter, changing the economics of \VM\ implementation. In this paper, we explain, through two concrete VMs, how meta-tracing \RPython\ \VMs\ can be designed and optimised, and, experimentally, the performance levels one might reasonably expect from them.
Description
The impact of meta-tracing on VM design and implementation
%0 Journal Article
%1 Bolz2013
%A Bolz, Carl Friedrich
%A Tratt, Laurence
%D 2013
%J Science of Computer Programming
%K LanguageImplementation MetaTracing PyPy RPython Tracing VMs VirtualMachine
%R 10.1016/j.scico.2013.02.001
%T The Impact of Meta-Tracing on VM Design and Implementation
%X Most modern languages are implemented using Virtual Machines (VMs). While the best \VMs\ use Just-In-Time (JIT) compilers to achieve good performance, \JITs\ are costly to implement, and few \VMs\ therefore come with one. The \RPython\ language allows tracing \JIT\ \VMs\ to be automatically created from an interpreter, changing the economics of \VM\ implementation. In this paper, we explain, through two concrete VMs, how meta-tracing \RPython\ \VMs\ can be designed and optimised, and, experimentally, the performance levels one might reasonably expect from them.
@article{Bolz2013,
abstract = {Most modern languages are implemented using Virtual Machines (VMs). While the best \{VMs\} use Just-In-Time (JIT) compilers to achieve good performance, \{JITs\} are costly to implement, and few \{VMs\} therefore come with one. The \{RPython\} language allows tracing \{JIT\} \{VMs\} to be automatically created from an interpreter, changing the economics of \{VM\} implementation. In this paper, we explain, through two concrete VMs, how meta-tracing \{RPython\} \{VMs\} can be designed and optimised, and, experimentally, the performance levels one might reasonably expect from them. },
added-at = {2014-01-21T10:04:17.000+0100},
author = {Bolz, Carl Friedrich and Tratt, Laurence},
biburl = {https://www.bibsonomy.org/bibtex/2c5b69acfdbd7b5cb411cf22e3095acc7/gron},
description = {The impact of meta-tracing on VM design and implementation},
doi = {10.1016/j.scico.2013.02.001},
interhash = {8f5c6d1699a5aeb60cef15df428f7e4a},
intrahash = {c5b69acfdbd7b5cb411cf22e3095acc7},
issn = {0167-6423},
journal = {Science of Computer Programming },
keywords = {LanguageImplementation MetaTracing PyPy RPython Tracing VMs VirtualMachine},
timestamp = {2014-01-21T10:04:17.000+0100},
title = {The Impact of Meta-Tracing on VM Design and Implementation},
year = 2013
}