Skip to main content

Implementing regular tree expressions

  • Conference paper
  • First Online:
Functional Programming Languages and Computer Architecture (FPCA 1991)

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

Abstract

Regular tree expressions are a natural formalism for describing the sets of tree-structured values that commonly arise in programs; thus, they are well-suited to applications in program analysis. We describe an implementation of regular tree expressions and our experience with that implementation in the context of the FL type system. A combination of algorithms, optimizations, and fast heuristics for computationally difficult problems yields an implementation efficient enough for practical use.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Aiken and B. Murphy. Static type inference in a dynamically typed language. In Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 279–290, Orlando, 1991.

    Google Scholar 

  2. A. Aiken and E. Wimmers. A decision problem for set constraints. Research Report Forthcoming RJ, IBM, 1991.

    Google Scholar 

  3. J. Backus et al. FL language manual, parts 1 and 2. Research Report RJ 7100, IBM, 1989.

    Google Scholar 

  4. B. Courcelle. Fundamental properties of infinite trees. Theoretical Computer Science, 25:95–169, 1983.

    Google Scholar 

  5. F. Gecseg and M. Steinby. Tree Automata. Academei Kaido, Budapest, 1984.

    Google Scholar 

  6. N. Heintze and J. Jaffar. A finite presentation theorem for approximating logic programs. In Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 197–209, January 1990.

    Google Scholar 

  7. N. Heintze and J. Jaffar. Set-based program analysis. Draft manuscript, 1991.

    Google Scholar 

  8. J. E. Hopcroft and J. D. Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 1979.

    Google Scholar 

  9. N. D. Jones and S. S. Muchnick. Flow analysis and optimization of LISP-like structures. In Sixth Annual ACM Symposium on Principles of Programming Languages, pages 244–256, January 1979.

    Google Scholar 

  10. D. Michie. ‘Memo’ functions and machine learning. Nature, (218):19–22, April 1968.

    Google Scholar 

  11. P. Mishra. Towards a theory of types in PROLOG. In Proceedings of the First IEEE Symposium in Logic Programming, pages 289–298, 1984.

    Google Scholar 

  12. P. Mishra and U. Reddy. Declaration-free type checking. In Proceedings of the Twelfth Annual ACM Symposium on the Principles of Programming Languages, pages 7–21, 1985.

    Google Scholar 

  13. B. R. Murphy. A type inference system for FL. Master's thesis, MIT, 1990.

    Google Scholar 

  14. H. Seidl. Deciding equivalence of finite tree automata. In 6th Annual Symposium on Theoretical Aspects of Computer Science. Lecture Notes in Computer Science, February 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John Hughes

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Aiken, A., Murphy, B.R. (1991). Implementing regular tree expressions. In: Hughes, J. (eds) Functional Programming Languages and Computer Architecture. FPCA 1991. Lecture Notes in Computer Science, vol 523. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540543961_21

Download citation

  • DOI: https://doi.org/10.1007/3540543961_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54396-1

  • Online ISBN: 978-3-540-47599-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics