2014
DOI: 10.1145/2532642
|View full text |Cite
|
Sign up to set email alerts
|

Efficient hosted interpreters on the JVM

Abstract: Many guest languages are implemented using the Java Virtual Machine (JVM) as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good performance. Hosted interpreters are comparatively simpler to implement but until now have suffered from poor performance.We studied the performance of hosted interpreters and identified common bottlenecks preventing their efficient execution. First, similar to interpr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
2
0
1

Year Published

2018
2018
2023
2023

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 5 publications
(3 citation statements)
references
References 18 publications
0
2
0
1
Order By: Relevance
“…The most common is duplicating the dispatch sequence at the end of every handler (referred to in this paper and elsewhere, if somewhat imprecisely, as a threaded interpreter or threaded dispatch), and is used in all the interpreters we tested. Threaded dispatch has even been applied to hosted interpreters on the JVM [57]. For stack machines, stack caching [51] [32] [49] VMs try to keep the top-of-stack cached in a register, reducing loads and stores to the value stack.…”
Section: Optimizing Fixed Format Interpretersmentioning
confidence: 99%
“…The most common is duplicating the dispatch sequence at the end of every handler (referred to in this paper and elsewhere, if somewhat imprecisely, as a threaded interpreter or threaded dispatch), and is used in all the interpreters we tested. Threaded dispatch has even been applied to hosted interpreters on the JVM [57]. For stack machines, stack caching [51] [32] [49] VMs try to keep the top-of-stack cached in a register, reducing loads and stores to the value stack.…”
Section: Optimizing Fixed Format Interpretersmentioning
confidence: 99%
“…The system later partially evaluates these interpreters to generate machine code. Savrun-Yeniceri et al [59] consider forms of threaded code generation to speed up JVM-hosted interpreters, by reducing indirect jumps to improve branch prediction. While these approaches help improve the runtime performance of executing dynamic languages, they still do not influence how such languages are amenable to static analysis.…”
Section: Multilingual Virtual Machinesmentioning
confidence: 99%
“…Si bien existen alternativas para evaluar el rendimiento de varias plataformas o lenguajes de programación "hasta ahora, ningún conjunto cohesivo de métricas ha cubierto adecuadamente las propiedades que varían sistemáticamente entre las cargas de trabajo de plataformas Java y las que no son Java" [7], sin embargo en [8] se presenta una propuesta de mejora y optimización a algunos problemas identificados con respecto a intérpretes alojados en Máquinas Virtuales Java, la misma que se evalúa con tres intérpretes: Jruby (Ruby), Jython (Python), y Rhino ( Java Script). De manera similar en [9] se caracteriza el comportamiento dinámico de los lenguajes interpretados Clojure, Python y Ruby sobre la Máquina Virtual de Java discutiendo brevemente sus implicaciones.…”
Section: Introductionunclassified