Graph rewriting and automatic, machine-independent program optimization

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 100)


Classical automatic optimization is starting with linearized intermediate code and builds up graph-like data structures (flow graph, DAGs, data flow analysis information). Most of the information which was already known by the upper part of the compiler now has to be recovered again. We start with a graph-like intermediate code in which all structural information of the source code is still present. Optimization is then carried out by graph manipulations. This is sketched by some examples, namely local common subexpression elimination, motion of loop invariant computations, and induction variable elimination.


Basic Block Array Element Graph Transformation Program Graph Graph Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. /AU77/.
    A.V. Aho/J.D. Ullmann: Principles of Compiler Design, Reading (Mass.): Addison-Wesley (1977)Google Scholar
  2. /Ba79/.
    F.L. Bauer et al.: Program Development by Transformation, Section III of F.L. Bauer (Ed.): Program Construction, Lect. Notes Comp. Sci. 69, 235–492 (1979).Google Scholar
  3. /BBN77/.
    W. Brendel/H. Bunke/M. Nagl: Syntaxgesteuerte Programmierung und inkrementelle Compilation, Informatik-Fachberichte 10, 57–74, Berlin: Springer-Verlag (1977).Google Scholar
  4. /BNW78/.
    W. Brendel/M. Nagl/D. Weber: Implementation of Sequential and Parallel Graph Rewriting Systems, Applied Computer Science 8, 79–106, München: Carl Hanser Verlag (1978).Google Scholar
  5. /Bu79/.
    H. Bunke: Sequentielle und parallele programmierte Graph-Grammatiken, Doctoral Dissertation, Arbeitsber. d. Inst. f. Math. Masch. u. Datenverarb. 12, 3, Erlangen (1979).Google Scholar
  6. /CER79/.
    V. Claus/H. Ehrig/B.K. Rosen (Eds.): Graph Grammars and their Application to Computer Science and Biology. Lect. Notes in Comp. Sci. 79, Berlin: Springer-Verlag (1979).Google Scholar
  7. /FKZ76/.
    R. Farrow/K. Kennedy/L. Zucconi: Graph Grammars and Global Program Data Flow Analysis, Techn. Rep., Dpt. Math. Sci., Rice University, Texas.Google Scholar
  8. /Kn74/.
    D. Knuth: Structured programming with goto statements, Computing Surveys 8, 261–301 (1974).Google Scholar
  9. /Lo76/.
    D.E. Loveman: Program improvement by source to source transformation, Proc. 3rd ACM POPL Symp. 140–152 (1976).Google Scholar
  10. /Na79/.
    M. Nagl: Graph-Grammatiken: Theorie, Anwendungen, Implementierung, Wiesbaden: Vieweg Verlag (1979).Google Scholar
  11. /Na80a/.
    M. Nagl: Incremental Compiler as Component of a System for Software Generation, Proc. 6th Gl Conference on Programming Languages and Program Development, Informatik-Fachberichte 25, 29–44, Berlin: Springer-Verlag (1980).Google Scholar
  12. /Na80b/.
    M. Nagl: Application of Graph Rewriting to Optimization and Parallelization of Programs, to appear in Computing.Google Scholar
  13. /Ro77/.
    B.K. Rosen: High Level Data Flow Analysis, Comm. ACM 20, 10, 712–724 (1977).Google Scholar
  14. /Ro79/.
    B.K. Rosen: Data Flow Analysis for Procedural Languages. Journ. ACM 26, 2, 322–344 (1979).Google Scholar
  15. /Sn75/.
    H.J. Schneider: Syntax-directed description of incremental compilers, Lect. Notes Comp. Sci. 26, 192–201, Berlin: Springer-Verlag (1975).Google Scholar
  16. /Ul73/.
    J.D. Ullman: Fast Algorithms for the Elimination of Common Subexpressions, Acta Informatica 2, 191–213 (1973).Google Scholar
  17. /Wu75/.
    W. Wulf et al.: The Design of an Optimization Compiler, New York: American Elsevier (1975).Google Scholar
  18. /ZB74/.
    M.V. Zelkowitz/W.G. Bail: Optimization of structured programs, Software Pract. & Exp. 4, 1, 51–57 (1974).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • M. Nagl
    • 1
  1. 1.Seminar für Informatik EWH KoblenzKoblenzGermany

Personalised recommendations