Specification of reduction strategies in term rewriting systems

  • M. C. J. D. van Eekelen
  • M. J. Plasmeijer
Resource Control Issues
Part of the Lecture Notes in Computer Science book series (LNCS, volume 279)


There is a growing interest in Term Rewriting Systems (TRS's), which are used as a conceptual basis for new programming languages such as functional languages and algebraic specification languages. TRS's serve as a computational model for (parallel) implementations of these languages. They also form the foundation for a calculus for Graph Rewriting Systems (GRS's). In Rewriting Systems reduction strategies play an important role because they control the actual rewriting process. Strategies determine the order of the rewriting and the rules to apply. Hence they have a great influence on the efficiency and the amount of parallelism in the computation. In ambiguous or non-deterministic TRS's, they even influence the outcome of the computation. Some of the reduction strategies used in TRS's are extremely complex algorithms. Unfortunately, there is no common formal specification method for reduction strategies yet.

In this paper three formal methods for specifying reduction strategies in TRS's are presented. In the first method the reduction strategy is encoded in the TRS itself. The original TRS is transformed to a so called annotation TRS in which the strategy is encoded using functions. This annotation TRS itself may use any normalizing reduction strategy. Unfortunately, compared with the number of rules of the original TRS, the annotation TRS may contain an exponential number of additional rules. In the second method this drawback is prevented, simply by using a priority TRS as annotation TRS. The desire to specify a strategy uniformly for all TRS's leads to the third method. A new TRS system is introduced that uses two basic primitives for matching and rewriting and that is build out of three separate TRS's. The use of this abstract-interpretation TRS is shown to be the most promising method.


Normal Form Reduction Strategy Functional Language Rewrite System Functional Programming Language 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BAE86]
    Baeten, J.C.M., Bergstra J.A., Klop J.W., "Term Rewriting Systems with Priorities", University of Amsterdam, Report FVI 86-03, 1986.Google Scholar
  2. [BAR86a]
    Barendregt, H.P., Eekelen, M.C.J.D. van, Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R., "Towards an Intermediate Language based on Graph Rewriting", University of East-Anglia and University of Nijmegen, Nijmegen internal report 88.Google Scholar
  3. [BAR86b]
    Barendregt, H.P., Eekelen, M.C.J.D. van, Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R., "Term Graph Rewriting", University of East-Anglia and University of Nijmegen, Nijmegen internal report 87.Google Scholar
  4. [BRO86]
    Broek, P.M. van den, Hoeven, G.F. van der, "Combinatorgraph Reduction and the Church-Rosser Property", internal report INF 86-15, Technical University of Twente, june 1986.Google Scholar
  5. [BUR85]
    Burn, G.L., Hankin, C.L., Abramsky, S., "The Theory and Practice of Strictness Analysis for Higher Order Functions", Research Report DoC 85/6, Imperial College, London 1985.Google Scholar
  6. [EHR78]
    Ehrig, H., "Introduction to the Algebraic Theory of Graph Grammars", Lecture Notes in Computer Science 73, Springer-Verlag Berlin, Aug. 1978.Google Scholar
  7. [FUT84]
    Futatsugi, K., Goguen, J.A., Jouannaud, J.P., Messaguer, J., "Principles of OBJ2", Twelfth Annual ACM Symposium on Principles of Programming Languages, Jan 1984, pp. 52–66.Google Scholar
  8. [GLA85]
    Glauert, J.R.W., Holt, N.P., Kennaway, J.R., Reeve, M.J., Sleep, M.R., Watson, I., "DACTLO: A Computational Model and an associated Compiler Target Language", University of East-Anglia 1985, internal report.Google Scholar
  9. [KLO85]
    Klop, J.W., "Term rewriting systems", Notes for the Seminar on Reduction Machines, Ustica 1985, to appear.Google Scholar
  10. [MAG80]
    Magó, G.A., "A Cellular Computer for Functional Programming", digest of Papers, IEEE Comp. Soc. COMPCON, Spring 1980, pp. 179–187.Google Scholar
  11. [O'DO85]
    O'Donnell, M.J., "Equational Logic as a Programming Language", Foundations of Computing Series, MIT Press, 1985.Google Scholar
  12. [RAO84]
    Raoult, J.C., "On Graph Rewritings", Theor. Comp. Sc. 32, North-Holland, 1984, pp. 1–24.CrossRefGoogle Scholar
  13. [TUR85]
    Turner, D.A., "Miranda: A non-strict functional language with polymorphic types", Proceedings, Conference On Functional Programming Languages and Computer Architecture, Nancy 1985, Jouannaud, J.P., Ed., Lecture Notes in Computer Science 201, Springer-Verlag, Berlin Heidelberg New York Tokyo, pp. 1–16.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • M. C. J. D. van Eekelen
    • 1
  • M. J. Plasmeijer
    • 1
  1. 1.Nijmegen UniversityThe Netherlands

Personalised recommendations