JIT compilers produce fast code, whereas interpreters are easy to port between architectures. We propose to combine the advantages of these language implementation techniques as follows: we generate native code by concatenating and patching machine code fragments taken from interpreter-derived code (generated by a C compiler); we completely eliminate the interpreter dispatch overhead and accesses to the interpreted code by patching jump target addresses and other constants into the fragments. In this paper we present the basic idea, discuss some issues in more detail, and present results from a proof-of-concept implementation, providing speedups of up to 1.87 over the fastest previous interpreter-based technique, and performance comparable ...
We apply the methods of Ager et al. (2003a,b), used to transform an interpreter into a compiler and ...
Many dynamic languages such as Ruby, Python and Perl offer some kind of functionality for writing pa...
International audienceModern language implementations using Virtual Machines feature diverse executi...
For domain specific languages, “scripting languages”, dynamic languages, and for virtual machine-bas...
International audienceModern Just-in-Time compilers (or JITs) typically interleave several mechanism...
International audienceIn the present computing landscape, interpreters are in use in a wide range of...
We attempt to apply the technique of Tracing JIT Com-pilers in the context of the PyPy project, i.e....
This document presents our main contributions to the field of compilation, and more generally to the...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
A key problem in retargeting a compiler is to map the compiler's intermediate representation to the ...
This article investigates several source-to-source C compilers for extracting pre-execution thread c...
International audienceJust-in-time compilers for dynamic languages routinely generate code under ass...
Using only the internal program and data memory of a microcontroller can save large costs in embedde...
International audienceThe current microarchitecture trend leads toward heterogeneity. This evolution...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
We apply the methods of Ager et al. (2003a,b), used to transform an interpreter into a compiler and ...
Many dynamic languages such as Ruby, Python and Perl offer some kind of functionality for writing pa...
International audienceModern language implementations using Virtual Machines feature diverse executi...
For domain specific languages, “scripting languages”, dynamic languages, and for virtual machine-bas...
International audienceModern Just-in-Time compilers (or JITs) typically interleave several mechanism...
International audienceIn the present computing landscape, interpreters are in use in a wide range of...
We attempt to apply the technique of Tracing JIT Com-pilers in the context of the PyPy project, i.e....
This document presents our main contributions to the field of compilation, and more generally to the...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
A key problem in retargeting a compiler is to map the compiler's intermediate representation to the ...
This article investigates several source-to-source C compilers for extracting pre-execution thread c...
International audienceJust-in-time compilers for dynamic languages routinely generate code under ass...
Using only the internal program and data memory of a microcontroller can save large costs in embedde...
International audienceThe current microarchitecture trend leads toward heterogeneity. This evolution...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
We apply the methods of Ager et al. (2003a,b), used to transform an interpreter into a compiler and ...
Many dynamic languages such as Ruby, Python and Perl offer some kind of functionality for writing pa...
International audienceModern language implementations using Virtual Machines feature diverse executi...