Skip to main content
Log in

Tree automata for code selection

  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

We deal with the generation of code selectors in compiler backends. The fundamental concepts are systematically derived from the theory of regular tree grammars and finite tree automata. We use this general approach to construct algorithms that generalize and improve existing methods.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aho, A.V., Ganapathi, M.: Efficient tree pattern matching: an aid to code generation. In: Proc. of the 12th ACM Symp. on Principles of Programming Languages, 1985, pp. 334–340

  2. Börstler, J., Möncke, U., Wilhelm R.: Table compression for free automata. In: ACM Trans. Programm. Lang. Syst.13(3), 295–314 (1991)

  3. Chase, D.R.: An improvement to bottom-up tree pattern matching. In: Proc. of 14th ACM Symposium on Principles of Programming Languages, 1987, pp. 168–177

  4. Dauchet, M., Deruyver, A.: Compilation of ground term rewriting systems and applications. In: Dershowitz (ed.) Proceedings of the Conference: Rewriting Techniques and Applications. (Lect. Notes Comput. Sci., vol. 355, pp. 556–558) Berlin, Heidelberg, New York: Springer 1989

    Google Scholar 

  5. Downey, P.J., Sethi, R., Tarjan, E.R.: Variations on the common subexpression problem. In: J. ACM27, 758–771 (1980)

  6. Emmelmann, H.: Code selection by regularly controlled term rewriting. In: Giegerich, R., Graham, S.L. (eds.) Code generation-concepts, tools, techniques. (Workshops in Computing Series), pp. 3–29) Berlin, Heidelberg, New York: Springer 1991

    Google Scholar 

  7. Ferdinand, C.: Pattern matching in a functional transformation language using treeparsing. In: Deransart, P., Maluszyński J. (eds.) Proceedings of the Workshop: Programming Language Implementation and Logic Programming (Lect. Notes Comput Sci., vol. 465, pp. 358–371) Berlin, Heidelberg, New York: Springer 1990

    Google Scholar 

  8. Gecseg, F., Steinby, M.: Tree automata. Budapest: Akademiai Kiado 1984)

    Google Scholar 

  9. Giegerich, R.: Code selection by inversion of order-sorted derivors. Theor. Comput. Sci.73, 177–211

  10. Giegerich, R., Schmal, K.: Code selection techniques: pattern matching, tree parsing, and inversion of derivors. In: Ganzinger, H. (ed.) ESOP 88 (Lect. Notes Comput. Sci., vol. 300, pp. 247–268) Berlin, Heidelberg, New York, Springer 1988

    Google Scholar 

  11. Glanville, R.S.: A machine independent algorithm for code generation and its use in retargetable compilers. Ph.D. Thesis, University of California, Berkeley, 1977

    Google Scholar 

  12. Glanville, R.S., Graham, S.L.: A new method for compiler code generation. In: Proceedings of the 5th ACM Symposium on Principles of Programming Languages, 1978, pp. 231–240

  13. Gräf, A.: Left-to-right tree pattern matching. In: Book, R.V. (ed.) Rewriting techniques and applications (Lect. Notes Comput. Sci., vol. 488, pp. 323–334) Berlin, Heidelberg, New York: Springer 1991

    Google Scholar 

  14. Henry, R.R.: Graham-Glanville code generators. Ph.D. Thesis, University of California, Berkeley, 1984

    Google Scholar 

  15. Henry, R.R., Damron, P.C.: Algorithms for table-driven code generators using tree-pattern matching. Technical Report #89-02-03. University of Washington, Seattle, 1989

    Google Scholar 

  16. Henry, R.R., Damron, P.C.: Encoding optimal pattern selection in a table driven bottom-up tree-pattern matcher. Technical Report #89-02-04, University of Washington, Seattle, 1989

    Google Scholar 

  17. Hoffmann, D.M., O'Donnell, M.J.: Pattern matching in trees. J. ACM29(1), 68–95 (1982)

    Google Scholar 

  18. Kron, H.: Tree templates and subtree transformational grammars. Ph.D. Thesis, University of California, Santa Cruz, 1975

    Google Scholar 

  19. Mathis, N.: Weiterentwicklung eines Codeselektorgenerators und Anwendung auf den NSC32000. Diplomarbeit, Universität des Saarlandes, 1990

  20. Möncke, U.: Simulating automata for weighted tree reductions. Technischer Bericht Nr. A10/87, Universität des Saarlandes, 1987

  21. Nivat, M., Podelski, A. (eds.) Tree automata and languages. Amsterdam: Elsevier 1992

    Google Scholar 

  22. Möncke, U., Weisgerber, B., Wilhelm, R.: Generative support for transformational programming. In: ESPRIT: Status Report of Continuing Work. Brussels: Elsevier 1986

    Google Scholar 

  23. Pelegri-Llopart, E.: Rewrite systems, pattern matching, and code generation. Ph.D. Thesis, University of California, Berkeley, 1988

    Google Scholar 

  24. Pelegri-Llopart, E., Graham, S.L.: Optimal code generation for expression trees: an application of BURS theory. In: Proceedings of the 15th ACM Symposium on Principles of Programming Languages, 1988, San Diego, CA, pp. 294–308

  25. Peper, C.: Generische Baumanalysatoren-Generatoren. Diplomarbeit Universität des Saarlandes, 1994

  26. Ripken, K.: Formale Beschreibungen von Maschinen, Implementierungen und optimierender Maschinencode-Erzeugung aus attributierten Programmgraphen. Dissertation, TU München, 1977

  27. Weisgerber, B., Wilhelm, R.: Two tree pattern matchers for code selection. In: Hammer, D. (ed.) Compiler compilers and high speed compilation (Lect. Notes Comput. Sci., vol. 371, pp. 215–229) Berlin, Heidelberg, New York: Springer, 1988

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Funded by the ESPRIT Project #5399 (COMPARE)

Funded by DFG SFB #124 VLSI-Design and Parallelism

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ferdinand, C., Seidl, H. & Wilhelm, R. Tree automata for code selection. Acta Informatica 31, 741–760 (1994). https://doi.org/10.1007/BF01178733

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01178733

Keywords

Navigation