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.
|Original language||English (US)|
|Number of pages||11|
|Journal||Conference Record of the Annual ACM Symposium on Principles of Programming Languages|
|State||Published - 1995|
|Event||Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - San Francisco, CA, USA|
Duration: Jan 22 1995 → Jan 25 1995
ASJC Scopus subject areas