Optimizing an ANSI C interpreter with superoperators

Research output: Contribution to journalConference articlepeer-review

92 Scopus citations

Abstract

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 languageEnglish (US)
Pages (from-to)322-332
Number of pages11
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
DOIs
StatePublished - 1995
EventProceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - San Francisco, CA, USA
Duration: Jan 22 1995Jan 25 1995

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Optimizing an ANSI C interpreter with superoperators'. Together they form a unique fingerprint.

Cite this