Abstract
Transformations of trees and rewriting of terms can be found in various settings e.g. transformations of abstract syntax trees in compiler construction and program synthesis.
A language is proposed combining features of a general purpose functional language with special means to specify tree transformations. Atomic transformations are considered first order functions and described by pattern matching. The pattern specification language allows for partitioning trees by arbitrary vertical and horizontal cuts. This goes beyond what is possible in similar languages [2,13,14]. High order functions and functional combinators are used to express strategies for the controlled application of transformations.
This research was partially supported by the Commission of the European Communities under Esprit Project Ref. No. 390 (PROSPECTRA) and by Sonderforschungsbereich 124 — VLSI Design Methods and Parallelism
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Bobrow, D. G., Raphael, B.: New Programming Languages for Artificial Intelligence Research, ACM Comp. Sur. 6, 153–174, (1974)
Burstall, R., MacQueen, D., Sannella, D.: HOPE: An Experimental Applicative Language, Report CSR-62-80, Computer Science Dept., Edinburgh, (1980)
CIP Language Group: The Munich Project CIP. Volume I: The wide spectrum language CIP-L, Springer, LNCS 183, 1985)
Clocksin, F. W., Mellish, C. S.: Programming in Prolog, Springer (1981)
Gersdorf, B.: A Functional Language for Term Manipulation, PROSPECTRA M.3.1.S1-SN-2.0, (1987)
Heckmann, R.: A Proposal for the Syntactic Part of the PROSPECTRA Transformation Language, PROSPECTRA S.1.6-SN-6.0, (1987)
Heckmann, R.: Semantics of Patterns, PROSPECTRA S.1.6-SN-8.0, (1987)
Heckmann, R.: Syntax and Semantics of TrafoLa, PROSPECTRA S.1.6-SN-10.0, (1987)
Huet, G., Lang., B.: Proving and Applying Program Transformations Expressed with Second Order Patterns, Acta Inf. 11, 31–55, (1978)
Krieg-Brückner, B.: Informal Specification of the PROSPECTRA System, PROSPECTRA M.1.1.S1-R-9.1, (1986)
Krieg-Brückner, B.: Systematic Transformation of Interface Specifications, in: Partsch, H. (ed.): Program Specification and Transformation, Proc. IFIP TC2 Working Conf. (Tölz '86), North Holland, (1987)
Krieg-Brückner, B.: Algebraic Formalisation of Program Development by Transformation, Springer, this volume, (1988)
Milner, R.: The Standard ML Core Language, In: Polymorphism, Vol. II, Number 2, (Oct. 1985)
Turner, D. A.: Miranda: a non-strict Functional Language with Polymorphic Types, Springer, LNCS 201, (1985)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Heckmann, R. (1988). A functional language for the specification of complex tree transformations. In: Ganzinger, H. (eds) ESOP '88. ESOP 1988. Lecture Notes in Computer Science, vol 300. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-19027-9_12
Download citation
DOI: https://doi.org/10.1007/3-540-19027-9_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-19027-1
Online ISBN: 978-3-540-38941-5
eBook Packages: Springer Book Archive