One VM to rule them all
Building high-performance virtual machines is a complex and expensive undertaking; many
popular languages still have low-performance implementations. We describe a new …
popular languages still have low-performance implementations. We describe a new …
Practical partial evaluation for high-performance dynamic language runtimes
Most high-performance dynamic language virtual machines duplicate language semantics
in the interpreter, compiler, and runtime system. This violates the principle to not repeat …
in the interpreter, compiler, and runtime system. This violates the principle to not repeat …
Effect handlers for the masses
Effect handlers are a program structuring paradigm with rising popularity in the functional
programming language community and can express many advanced control flow …
programming language community and can express many advanced control flow …
Bytecodes meet combinators: invokedynamic on the JVM
JR Rose - Proceedings of the Third Workshop on Virtual …, 2009 - dl.acm.org
The Java Virtual Machine (JVM) has been widely adopted in part because of its classfile
format, which is portable, compact, modular, verifiable, and reasonably easy to work with …
format, which is portable, compact, modular, verifiable, and reasonably easy to work with …
Theory and practice of coroutines with snapshots
While event-driven programming is a widespread model for asynchronous computing, its
inherent control flow fragmentation makes event-driven programs notoriously difficult to …
inherent control flow fragmentation makes event-driven programs notoriously difficult to …
[BOOK][B] Specialising dynamic techniques for implementing the Ruby Programming Language
C Seaton - 2015 - search.proquest.com
The Ruby programming language is dynamically typed, uses dynamic and late bound
dispatch for all operators, method calls and many control structures, and provides extensive …
dispatch for all operators, method calls and many control structures, and provides extensive …
Efficient coroutines for the Java platform
Coroutines are non-preemptive lightweight processes. Their advantage over threads is that
they do not have to be synchronized because they pass control to each other explicitly and …
they do not have to be synchronized because they pass control to each other explicitly and …
Lightweight Java profiling with partial safepoints and incremental stack tracing
Sampling profilers are popular because of their low and adjustable overhead and because
they do not distort the profile by modifying the application code. A typical sampling profiler …
they do not distort the profile by modifying the application code. A typical sampling profiler …
Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine
Contemporary concurrent server applications, commonly built of smaller and independent
services, are using concurrent threads to serve many incoming requests and often have to …
services, are using concurrent threads to serve many incoming requests and often have to …
The Eureka programming model for speculative task parallelism
S Imam, V Sarkar - 29th European Conference on Object …, 2015 - drops.dagstuhl.de
In this paper, we describe the Eureka Programming Model (EuPM) that simplifies the
expression of speculative parallel tasks, and is especially well suited for parallel search and …
expression of speculative parallel tasks, and is especially well suited for parallel search and …