Two-level hybrid interpreter/native code execution for combined space-time program efficiency
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Cint: a RISC interpreter for the C programming language
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
A code generation interface for ANSI C
Software—Practice & Experience
MIPS RISC architectures
A retargetable compiler for ANSI C
ACM SIGPLAN Notices
BURG: fast optimal instruction selection and tree parsing
ACM SIGPLAN Notices
Communications of the ACM
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
The ICON Programming Language, 2nd Ed.
The ICON Programming Language, 2nd Ed.
Relocating machine instructions by currying
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Does “just in time” = “better late than never”?
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Code compression based on operand factorization
MICRO 31 Proceedings of the 31st annual ACM/IEEE international symposium on Microarchitecture
Software watermarking: models and dynamic embeddings
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic inference of models for statistical code compression
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Compiler techniques for code compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Java bytecode compression for low-end embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bytecode compression via profiled grammar rewriting
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Towards automatic construction of staged compilers
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Profile-guided code compression
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Implementing an Efficient Java Interpreter
HPCN Europe 2001 Proceedings of the 9th International Conference on High-Performance Computing and Networking
The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
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
Code optimization for code compression
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
Generation of fast interpreters for Huffman compressed bytecode
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
The case for virtual register machines
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Grammar-based compression of interpreted code
Communications of the ACM - Program compaction
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
The dynamic compilation of lazy functional programs
Journal of Functional Programming
Feedback driven instruction-set extension
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Retargeting JIT Compilers by using C-Compiler Generated Executable Code
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Code compression by register operand dependency
Journal of Systems and Software
Access Pattern-Based Code Compression for Memory-Constrained Embedded Systems
Proceedings of the conference on Design, Automation and Test in Europe - Volume 2
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
A quantitative analysis of Java bytecode sequences
Proceedings of the 3rd international symposium on Principles and practice of programming in Java
High performance annotation-aware JVM for Java cards
Proceedings of the 5th ACM international conference on Embedded software
Link-time binary rewriting techniques for program compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
VMSTAR: synthesizing scalable runtime environments for sensor networks
Proceedings of the 3rd international conference on Embedded networked sensor systems
Mixed mode execution with context threading
CASCON '05 Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research
An instruction for direct interpretation of LZ77-compressed programs
Software—Practice & Experience
Proteus: virtualization for diversified tamper-resistance
Proceedings of the ACM workshop on Digital rights management
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generation of fast interpreters for Huffman compressed bytecode
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
The case for virtual register machines
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Automatic program transformation with JOIE
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Automated reduction of the memory footprint of the Linux kernel
ACM Transactions on Embedded Computing Systems (TECS) - Special Section LCTES'05
Optimizing indirect branch prediction accuracy in virtual machine interpreters
ACM Transactions on Programming Languages and Systems (TOPLAS)
A simplified java bytecode compilation system for resource-constrained embedded processors
CASES '07 Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems
Impact of JVM superoperators on energy consumption in resource-constrained embedded systems
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
Access pattern-based code compression for memory-constrained systems
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Experience in the design, implementation and use of a retargetable static binary translation framework
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Dynamic interpretation for dynamic scripting languages
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Decoupled lifeguards: enabling path optimizations for dynamic correctness checking tools
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Nested data-parallelism on the gpu
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Self-optimizing AST interpreters
Proceedings of the 8th symposium on Dynamic languages
A real-time virtual machine implementation for small microcontrollers
Innovations in Systems and Software Engineering
Distributed application tamper detection via continuous software updates
Proceedings of the 28th Annual Computer Security Applications Conference
On the dictionary compression for Java card environment
Proceedings of the 16th International Workshop on Software and Compilers for Embedded Systems
Lazy incremental computation for efficient scene graph rendering
Proceedings of the 5th High-Performance Graphics Conference
Efficient interpreter optimizations for the JVM
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Efficient hosted interpreters on the JVM
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
This paper introduces superoperators, an optimization technique for bytecoded interpreters. Superoperators are virtual machine operations automatically synthesized from smaller operations to avoid costly per-operation overheads. Superoperators decrease executable size and can double or triple the speed of interpreted programs. The paper describes a simple and effective heuristic for inferring powerful superoperators from the usage patterns of simple operators.The paper describes the design and implementation of a hybrid translator/interpreter that employs superoperators. From a specification of the superoperators (either automatically inferred or manually chosen), the system builds an efficient implementation of the virtual machine in assembly language. The system is easily retargetable and currently runs on the MIPS R3000 and the SPARC.