Optimizing an ANSI C interpreter with superoperators

Research output: Chapter in Book/Report/Conference proceedingConference contribution

75 Citations (Scopus)

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)
Title of host publicationConference Record of the Annual ACM Symposium on Principles of Programming Languages
Editors Anon
PublisherACM
Pages322-332
Number of pages11
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

Other

OtherProceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
CitySan Francisco, CA, USA
Period1/22/951/25/95

Fingerprint

Specifications
Virtual machine

ASJC Scopus subject areas

  • Software

Cite this

Proebsting, T. A. (1995). Optimizing an ANSI C interpreter with superoperators. In Anon (Ed.), Conference Record of the Annual ACM Symposium on Principles of Programming Languages (pp. 322-332). ACM.

Optimizing an ANSI C interpreter with superoperators. / Proebsting, Todd A.

Conference Record of the Annual ACM Symposium on Principles of Programming Languages. ed. / Anon. ACM, 1995. p. 322-332.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Proebsting, TA 1995, Optimizing an ANSI C interpreter with superoperators. in Anon (ed.), Conference Record of the Annual ACM Symposium on Principles of Programming Languages. ACM, pp. 322-332, Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA, USA, 1/22/95.
Proebsting TA. Optimizing an ANSI C interpreter with superoperators. In Anon, editor, Conference Record of the Annual ACM Symposium on Principles of Programming Languages. ACM. 1995. p. 322-332
Proebsting, Todd A. / Optimizing an ANSI C interpreter with superoperators. Conference Record of the Annual ACM Symposium on Principles of Programming Languages. editor / Anon. ACM, 1995. pp. 322-332
@inproceedings{6eba522ec1704b26b01b982b79fef7f0,
title = "Optimizing an ANSI C interpreter with superoperators",
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.",
author = "Proebsting, {Todd A}",
year = "1995",
language = "English (US)",
pages = "322--332",
editor = "Anon",
booktitle = "Conference Record of the Annual ACM Symposium on Principles of Programming Languages",
publisher = "ACM",

}

TY - GEN

T1 - Optimizing an ANSI C interpreter with superoperators

AU - Proebsting, Todd A

PY - 1995

Y1 - 1995

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=0029204372&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0029204372&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:0029204372

SP - 322

EP - 332

BT - Conference Record of the Annual ACM Symposium on Principles of Programming Languages

A2 - Anon, null

PB - ACM

ER -