One VM to rule them all

@inproceedings{Wrthinger2013OneVT,
  title={One VM to rule them all},
  author={Thomas W{\"u}rthinger and Christian Wimmer and Andreas W{\"o}{\ss} and Lukas Stadler and Gilles Duboscq and Christian Humer and Gregor Richards and Doug Simon and Mario Wolczko},
  booktitle={Onward!},
  year={2013}
}
Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. [...] Key Method The approach relies on abstract syntax tree (AST) interpretation where a node can rewrite itself to a more specialized or more general node, together with an optimizing compiler that exploits the structure of the interpreter. The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code. Our initial…Expand
ZipPy on truffle: a fast and simple implementation of python
TLDR
A new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allowing new languages to be implemented with modest additional effort by relying on tree-rewriting abstract syntax tree (AST) interpretation. Expand
Efficient Hosted Interpreter for Dynamic Languages
TLDR
This work hosts a “highly dynamic” language (Python) on the Java Virtual Machine, a VM for “moderately dynamic’ languages, while not the first to do so, this approach diverges from current practice by representing Python programs as abstract syntax trees, ASTs, rather than bytecode. Expand
On-Stack Replacement à la Carte
TLDR
It is shown that compiler optimizations can be made OSR-aware in isolation, and then safely composed, and it is discussed how the end-to-end utility of the techniques in source-level debugging of optimized code can provide novel building blocks for debuggers for both executables and managed runtimes. Expand
A fast abstract syntax tree interpreter for R
TLDR
This paper tries to see how far one can push a naive implementation while remaining portable and not requiring expertise in compilers and runtime systems. Expand
Designing an Adaptive VM That Combines Vectorized and JIT Execution on Heterogeneous Hardware
  • Tim Gubner
  • Computer Science
  • 2018 IEEE 34th International Conference on Data Engineering (ICDE)
  • 2018
TLDR
This work proposes the usage of domain-specific languages (DSL) that abstract specific details away that allows to easily exploit SIMD (on multiple architectures: CPU, GPU etc.) and proposes a virtual machine executing this DSL. Expand
Micro virtual machines: A solid foundation for managed language implementation
TLDR
Mu is the first micro virtual machine, a robust, performant, and light-weight abstraction over just three concerns: execution, concurrency and garbage collection, which attacks three of the most fundamental and challenging issues that face existing language designs and implementations. Expand
Compiler Templates for V 8 or : How I Learned to Stop Worrying and Love JavaScript
The performance of JavaScript virtual machines (VM) improved by several orders of magnitude in the last years, giving raise to ever more complex applications. Consequently there is a high demand forExpand
Flexible on-stack replacement in LLVM
TLDR
A framework for OSR is presented that introduces novel ideas and combines features of existing techniques that no previous solution provided simultaneously and improves the state of the art in the optimization of the feval instruction, a performance-critical construct of the MATLAB language. Expand
Virtual Machines for Dynamic Languages
A common approach to execute dynamic languages is inside a virtual machine (VM), usually implemented in a low level system language like C. Such VMs have to support the often complex syntax andExpand
Sulong - execution of LLVM-based languages on the JVM: position paper
TLDR
Sulong, an LLVM IR interpreter that brings all LLVM-based languages including C, C++, and Fortran in one stroke to the JVM, enables a wide area of future research, including high-performance interoperability between high-level and low-level languages. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 79 REFERENCES
How to not write Virtual Machines for Dynamic Languages
Typical modern dynamic languages have a growing number of implementations. We explore the reasons for this situation, and the limitations it imposes on open source or academic communities that lackExpand
Virtual machine showdown: stack versus registers
TLDR
This work extends existing work on comparing virtual stack and virtual register architectures in two ways, and presents an implementation of a register machine in a fully standard-compliant implementation of the Java VM. Expand
PyPy's approach to virtual machine construction
The PyPy project seeks to prove both on a research and a practical level the feasibility of constructing a virtual machine (VM) for a dynamic language in a dynamic language - in this case, Python.Expand
Lazy continuations for Java virtual machines
TLDR
This work proposes an implementation of continuations in the Java virtual machine with a lazy or on-demand approach, which imposes zero run-time overhead as long as no activations need to be saved and restored and performs well when continuations are used. Expand
Self-optimizing AST interpreters
TLDR
This work presents a novel approach to implementing AST interpreters in which the AST is modified during interpretation to incorporate type feedback, which is a general and powerful mechanism to optimize many constructs common in dynamic programming languages. Expand
Maxine: An approachable virtual machine for, and in, java
TLDR
The Maxine VM, a metacircular Java VM implementation, has aggressively used these features since its inception and a co-designed companion tool, the Maxine Inspector, offers integrated debugging and visualization of all aspects of the VM's runtime state. Expand
Efficient interpretation using quickening
TLDR
This work presents optimization techniques for improving the efficiency of interpreters without requiring just-in-time compilation thereby maintaining the ease-of-implementation characteristic that brought many people to implementing an interpreter in the first place. Expand
A dynamically configurable, multi-language execution platform
TLDR
The novel virtual machine architecture described in this paper allows programs written in an arbitrary bytecoded language to be executed safely and efficiently, and its single execution model provides interoperability, and effectively promotes reuse of existing software modules. Expand
A portable approach to dynamic optimization in run-time specialization
TLDR
This paper proposes arun-time bytecode specialization (BCS) technique that analyzes programs and generates specialized programs at run-time in an intermediate language, and observes that the overall performance of the application can be improved. Expand
VMKit: a substrate for managed runtime environments
TLDR
VMKit is described and evaluates, a first attempt to build a common substrate that eases the development of high-level MREs, and has performance comparable to the well established open source M REs Cacao, Apache Harmony and Mono. Expand
...
1
2
3
4
5
...