Code generation using tree matching and dynamic programming

Compiler-component generators, such as lexical analyzer generators and parser generators, have long been used to facilitate the construction of compilers. A tree-manipulation language called twig has been developed to help construct efficient code generators. Twig transforms a tree-translation scheme into a code generator that combines a fast top-down tree-pattern matching algorithm with dynamic programming. Twig has been used to specify and construct code generators for several experimental compilers targeted for different machines.

[1]  Susan L. Graham,et al.  An experiment in table driven code generation , 1982, SIGPLAN '82.

[2]  Mahadevan Ganapathi,et al.  Attributed linear intermediate representations for retargetable code generators , 1984, Softw. Pract. Exp..

[3]  Jeffrey D. Ullman,et al.  The Generation of Optimal Code for Arithmetic Expressions , 1970, JACM.

[4]  Alfred V. Aho,et al.  Efficient string matching , 1975, Commun. ACM.

[5]  Christopher W. Fraser,et al.  Automatic generation of code generators. , 1977 .

[6]  Charles N. Fischer,et al.  Retargetable Compiler Code Generation , 1982, CSUR.

[7]  Alfred V. Aho,et al.  Optimal Code Generation for Expression Trees , 1976, J. ACM.

[8]  Philippe Aigrain,et al.  Experience with a Graham-Glanville style code generator , 1984, SIGPLAN '84.

[9]  Alfred V. Aho,et al.  Optimal code generation for expression trees , 1975, STOC.

[10]  Eduardo Pelegrí-Llopart,et al.  Optimal code generation for expression trees: an application BURS theory , 1988, POPL '88.

[11]  Alfred V. Aho,et al.  Efficient Tree Pattern Matching: An Aid to Code Generation. , 1985 .

[12]  Alfred V. Aho,et al.  Code Generation for Expressions with Common Subexpressions , 1977, J. ACM.

[13]  Charles N. Fischer,et al.  Description-driven code generation using attribute grammars , 1982, POPL '82.

[14]  Gregor von Bochmann,et al.  Videotex Networks , 1980, Computer.

[15]  Susan L. Graham,et al.  A new method for compiler code generation , 1978, POPL '78.

[16]  Alfred V. Aho,et al.  Code-generation for machines with multiregister operations , 1977, POPL '77.

[17]  Charles N. Fischer,et al.  Affix grammar driven code generation , 1985, TOPL.

[18]  Bruce R. Schatz,et al.  An Overview of the Production-Quality Compiler-Compiler Project , 1980, Computer.

[19]  Stephen C. Johnson A portable compiler: theory and practice , 1978, POPL.

[20]  Thomas W. Christopher,et al.  High-quality code generation via bottom-up tree pattern matching , 1986, POPL '86.

[21]  Andrew W. Appel,et al.  Concise specifications of locally optimal code generators , 1987 .

[22]  Alfred V. Aho,et al.  Efficient tree pattern matching (extended abstract): an aid to code generation , 1985, POPL '85.

[23]  Christopher W. Fraser,et al.  Code selection through object code optimization , 1984, TOPL.

[24]  Robert Rettig Henry Graham/glanville code generators (compiler, parser, programming language) , 1984 .

[25]  Kurt Keutzer,et al.  Anatomy of a hardware compiler , 1988, PLDI '88.

[26]  K. Keutzer DAGON: Technology Binding and Local Optimization by DAG Matching , 1987, 24th ACM/IEEE Design Automation Conference.

[27]  Steven William Weingart,et al.  An efficient and systematic method of compiler code-generation. , 1973 .

[28]  Kurt Keutzer DAGON: Technology Binding and Local Optimization by DAG Matching , 1987, DAC.

[29]  Hans H. Kron,et al.  Tree templates and subtree transformational grammars. , 1975 .

[30]  Stephen Gibbs Wasilew A compiler writing system with optimization capabilities for complex object order structures , 1972 .

[31]  R. G. G. Cattell,et al.  Automatic Derivation of Code Generators from Machine Descriptions , 1980, TOPL.

[32]  Alfred V. Aho,et al.  Deterministic parsing of ambiguous grammars , 1975, Commun. ACM.

[33]  Thomas W. Christopher,et al.  Using dynamic programming to generate optimized code in a Graham-Glanville style code generator , 1984, SIGPLAN '84.

[34]  Robert Steven Glanville,et al.  A Machine Independent Algorithm for Code Generation and Its Use in Retargetable Compilers , 1977 .

[35]  Peter Dencker,et al.  Optimization of parser tables for portable compilers , 1984, TOPL.

[36]  Mark Horowitz,et al.  The MIPS-X Microprocessor, , 1985 .

[37]  Reinhard Wilhelm,et al.  OPTRAN, a Language for the Specification of Program Transformations , 1980, Fachtagung über Programmiersprachen.

[38]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[39]  John L. Bruno,et al.  Code Generation for a One-Register Machine , 1976, J. ACM.

[40]  Christopher W. Fraser,et al.  Integrating code generation and optimization , 1986, SIGPLAN '86.

[41]  Susan L. Graham,et al.  Table-Driven Code Generation , 1980, Computer.

[42]  William A. Wulf,et al.  Trends in the Design and Implementation of Programming Languages , 1980, Computer.

[43]  Christoph M. Hoffmann,et al.  Pattern Matching in Trees , 1982, JACM.

[44]  William A. Wulf PQCC : a machine-relative compiler technology , 1980 .