A functional language for the specification of complex tree transformations

  • Reinhold Heckmann
4. Language Concepts
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


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.


Pattern Match Function Call Procedure Call Functional Language Transformation Language 


  1. [1]
    Bobrow, D. G., Raphael, B.: New Programming Languages for Artificial Intelligence Research, ACM Comp. Sur. 6, 153–174, (1974)Google Scholar
  2. [2]
    Burstall, R., MacQueen, D., Sannella, D.: HOPE: An Experimental Applicative Language, Report CSR-62-80, Computer Science Dept., Edinburgh, (1980)Google Scholar
  3. [3]
    CIP Language Group: The Munich Project CIP. Volume I: The wide spectrum language CIP-L, Springer, LNCS 183, 1985)Google Scholar
  4. [4]
    Clocksin, F. W., Mellish, C. S.: Programming in Prolog, Springer (1981)Google Scholar
  5. [5]
    Gersdorf, B.: A Functional Language for Term Manipulation, PROSPECTRA M.3.1.S1-SN-2.0, (1987)Google Scholar
  6. [6]
    Heckmann, R.: A Proposal for the Syntactic Part of the PROSPECTRA Transformation Language, PROSPECTRA S.1.6-SN-6.0, (1987)Google Scholar
  7. [7]
    Heckmann, R.: Semantics of Patterns, PROSPECTRA S.1.6-SN-8.0, (1987)Google Scholar
  8. [8]
    Heckmann, R.: Syntax and Semantics of TrafoLa, PROSPECTRA S.1.6-SN-10.0, (1987)Google Scholar
  9. [9]
    Huet, G., Lang., B.: Proving and Applying Program Transformations Expressed with Second Order Patterns, Acta Inf. 11, 31–55, (1978)Google Scholar
  10. [10]
    Krieg-Brückner, B.: Informal Specification of the PROSPECTRA System, PROSPECTRA M.1.1.S1-R-9.1, (1986)Google Scholar
  11. [11]
    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)Google Scholar
  12. [12]
    Krieg-Brückner, B.: Algebraic Formalisation of Program Development by Transformation, Springer, this volume, (1988)Google Scholar
  13. [13]
    Milner, R.: The Standard ML Core Language, In: Polymorphism, Vol. II, Number 2, (Oct. 1985)Google Scholar
  14. [14]
    Turner, D. A.: Miranda: a non-strict Functional Language with Polymorphic Types, Springer, LNCS 201, (1985)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Reinhold Heckmann
    • 1
  1. 1.FB 10 — InformatikUniversität des SaarlandesSaarbrückenBundesrepublik Deutschland

Personalised recommendations