Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
BrouHaHa- A portable Smalltalk interpreter
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Fast, effective dynamic compilation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
Java Virtual Machine Specification
Java Virtual Machine Specification
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A dynamically configurable, multi-language execution platform
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
Static and Dynamic Program Compilation by Interpreter Specialization
Higher-Order and Symbolic Computation
OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Pipelined Java Virtual Machine Interpreters
CC '00 Proceedings of the 9th International Conference on Compiler Construction
sEc: A Portable Interpreter Optimizing Technique for Embedded Java Virtual Machine
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
Instruction merging and specialization in the SICStus Prolog virtual machine
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Vmgen: a generator of efficient virtual machine interpreters
Software—Practice & Experience
Dynamic profiling and trace cache generation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Optimizing indirect branch prediction accuracy in virtual machine interpreters
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A brief history of just-in-time
ACM Computing Surveys (CSUR)
The case for virtual register machines
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Dynamic native optimization of interpreters
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Templates-based portable just-in-time compiler
ACM SIGPLAN Notices
Multicodes: optimizing virtual machines using bytecode sequences
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An optimized Java interpreter for connected devices and embedded systems
Proceedings of the 2003 ACM symposium on Applied computing
A survey of optimisations for the Java Virtual Machine
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Retargeting JIT Compilers by using C-Compiler Generated Executable Code
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Context Threading: A Flexible and Efficient Dispatch Technique for Virtual Machine Interpreters
Proceedings of the international symposium on Code generation and optimization
Combining stack caching with dynamic superinstructions
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Code sharing among states for stack-caching interpreter
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Interpreting programs in static single assignment form
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Catenation and specialization for Tcl virtual machine performance
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Virtual machine showdown: stack versus registers
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Proceedings of the 3rd international symposium on Principles and practice of programming in Java
Improving whole-program locality using intra-procedural and inter-procedural transformations
Journal of Parallel and Distributed Computing
High performance annotation-aware JVM for Java cards
Proceedings of the 5th ACM international conference on Embedded software
Mixed mode execution with context threading
CASCON '05 Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research
A selective dynamic compiler for embedded Java virtual machines targeting ARM processors
Science of Computer Programming - Special issue: Principles and practices of programming in Java (PPPJ 2004)
The case for virtual register machines
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Tight analysis of the performance potential of thread speculation using spec CPU 2006
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
QEMU, a fast and portable dynamic translator
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
YETI: a graduallY extensible trace interpreter
Proceedings of the 3rd international conference on Virtual execution environments
SableVM: a research framework for the efficient execution of java bytecode
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Optimizing indirect branch prediction accuracy in virtual machine interpreters
ACM Transactions on Programming Languages and Systems (TOPLAS)
Virtual machine showdown: Stack versus registers
ACM Transactions on Architecture and Code Optimization (TACO)
Portable execution of legacy binaries on the Java virtual machine
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Analyzing the performance of code-copying virtual machines
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Trace-based just-in-time type specialization for dynamic languages
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Tracing the meta-level: PyPy's tracing JIT compiler
Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems
Virtual-Machine Abstraction and Optimization Techniques
Electronic Notes in Theoretical Computer Science (ENTCS)
Effective inline-threaded interpretation of Java bytecode using preparation sequences
CC'03 Proceedings of the 12th international conference on Compiler construction
Design of a real-time optimized emulation method
Proceedings of the Conference on Design, Automation and Test in Europe
AnySL: efficient and portable shading for ray tracing
Proceedings of the Conference on High Performance Graphics
Proceedings of the 8th ACM International Conference on Computing Frontiers
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
Achieving good performance in bytecoded language interpreters is difficult without sacrificing both simplicity and portability. This is due to the complexity of dynamic translation ("just-in-time compilation") of bytecodes into native code, which is the mechanism employed universally by high-performance interpreters.We demonstrate that a few simple techniques make it possible to create highly-portable dynamic translators that can attain as much as 70% the performance of optimized C for certain numerical computations. Translators based on such techniques can offer respectable performance without sacrificing either the simplicity or portability of much slower "pure" bytecode interpreters.