Skip to main content

Graph rewriting and automatic, machine-independent program optimization

  • Conference paper
  • First Online:
  • 162 Accesses

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

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A.V. Aho/J.D. Ullmann: Principles of Compiler Design, Reading (Mass.): Addison-Wesley (1977)

    Google Scholar 

  2. 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. W. Brendel/H. Bunke/M. Nagl: Syntaxgesteuerte Programmierung und inkrementelle Compilation, Informatik-Fachberichte 10, 57–74, Berlin: Springer-Verlag (1977).

    Google Scholar 

  4. 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. 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. 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. 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. D. Knuth: Structured programming with goto statements, Computing Surveys 8, 261–301 (1974).

    Google Scholar 

  9. D.E. Loveman: Program improvement by source to source transformation, Proc. 3rd ACM POPL Symp. 140–152 (1976).

    Google Scholar 

  10. M. Nagl: Graph-Grammatiken: Theorie, Anwendungen, Implementierung, Wiesbaden: Vieweg Verlag (1979).

    Google Scholar 

  11. 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. M. Nagl: Application of Graph Rewriting to Optimization and Parallelization of Programs, to appear in Computing.

    Google Scholar 

  13. B.K. Rosen: High Level Data Flow Analysis, Comm. ACM 20, 10, 712–724 (1977).

    Google Scholar 

  14. B.K. Rosen: Data Flow Analysis for Procedural Languages. Journ. ACM 26, 2, 322–344 (1979).

    Google Scholar 

  15. H.J. Schneider: Syntax-directed description of incremental compilers, Lect. Notes Comp. Sci. 26, 192–201, Berlin: Springer-Verlag (1975).

    Google Scholar 

  16. J.D. Ullman: Fast Algorithms for the Elimination of Common Subexpressions, Acta Informatica 2, 191–213 (1973).

    Google Scholar 

  17. W. Wulf et al.: The Design of an Optimization Compiler, New York: American Elsevier (1975).

    Google Scholar 

  18. M.V. Zelkowitz/W.G. Bail: Optimization of structured programs, Software Pract. & Exp. 4, 1, 51–57 (1974).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hartmut Noltemeier

Rights and permissions

Reprints and permissions

Copyright information

© 1981 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nagl, M. (1981). Graph rewriting and automatic, machine-independent program optimization. In: Noltemeier, H. (eds) Graphtheoretic Concepts in Computer Science. WG 1980. Lecture Notes in Computer Science, vol 100. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-10291-4_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-10291-4_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-10291-5

  • Online ISBN: 978-3-540-38435-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics