Engineering a simple, efficient code-generator generator

Christopher W. Fraser, David R. Hanson, Todd A Proebsting

Research output: Contribution to journalArticle

129 Citations (Scopus)

Abstract

Many code-generator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200-700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig's. They are necessarily slower than burg's BURS (bottom-up rewrite system) matchers, but they are more flexible and still practical.

Original languageEnglish (US)
Pages (from-to)213-226
Number of pages14
JournalACM letters on programming languages and systems
Volume1
Issue number3
DOIs
StatePublished - Sep 1992

Fingerprint

Pattern matching
Dynamic programming

ASJC Scopus subject areas

  • Engineering(all)

Cite this

Engineering a simple, efficient code-generator generator. / Fraser, Christopher W.; Hanson, David R.; Proebsting, Todd A.

In: ACM letters on programming languages and systems, Vol. 1, No. 3, 09.1992, p. 213-226.

Research output: Contribution to journalArticle

Fraser, Christopher W. ; Hanson, David R. ; Proebsting, Todd A. / Engineering a simple, efficient code-generator generator. In: ACM letters on programming languages and systems. 1992 ; Vol. 1, No. 3. pp. 213-226.
@article{bb8e832b3b6647708bf254f04e28d388,
title = "Engineering a simple, efficient code-generator generator",
abstract = "Many code-generator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200-700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig's. They are necessarily slower than burg's BURS (bottom-up rewrite system) matchers, but they are more flexible and still practical.",
author = "Fraser, {Christopher W.} and Hanson, {David R.} and Proebsting, {Todd A}",
year = "1992",
month = "9",
doi = "10.1145/151640.151642",
language = "English (US)",
volume = "1",
pages = "213--226",
journal = "ACM letters on programming languages and systems",
issn = "1057-4514",
number = "3",

}

TY - JOUR

T1 - Engineering a simple, efficient code-generator generator

AU - Fraser, Christopher W.

AU - Hanson, David R.

AU - Proebsting, Todd A

PY - 1992/9

Y1 - 1992/9

N2 - Many code-generator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200-700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig's. They are necessarily slower than burg's BURS (bottom-up rewrite system) matchers, but they are more flexible and still practical.

AB - Many code-generator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200-700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig's. They are necessarily slower than burg's BURS (bottom-up rewrite system) matchers, but they are more flexible and still practical.

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

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

U2 - 10.1145/151640.151642

DO - 10.1145/151640.151642

M3 - Article

AN - SCOPUS:0026916192

VL - 1

SP - 213

EP - 226

JO - ACM letters on programming languages and systems

JF - ACM letters on programming languages and systems

SN - 1057-4514

IS - 3

ER -