Implementing term rewrite languages in Dactl

  • J. R. Kennaway
Part of the Lecture Notes in Computer Science book series (LNCS, volume 299)


Dactl is a low-level language of graph rewriting, intended for programming highly parallel machines. The language includes, but is not restricted to, the limited form of graph rewriting which is commonly used to implement functional languages such as Miranda, ML, Hope, and Clean. In contrast to these functional languages, where the order in which subterms are evaluate (the evaluation strategy) is fixed for all programs, in Dactl the evaluation strategy is programmed explicitly. We define a translation of a functional language into Dactl, describe the problems encountered and their solution, and outline a proof that the translation is correct.


Normal Form Evaluation Strategy Active Node Function Symbol Syntax Tree 
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. [Bac78]
    Backus, J. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Comm. A.C.M., 21, 613–641, (1978).Google Scholar
  2. [Bar84]
    Barendregt, H.P. The Lambda Calculus. (North-Holland, 1984)Google Scholar
  3. [Bar87]
    Barendregt, H.P., van Eekelen, M.C.J.D., Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., and Sleep, M.R. Term Graph Rewriting. Proc. PARLE Conference, Lecture Notes in Computer Science 259, 141–158, (Springer, 1987).Google Scholar
  4. [Ber82]
    Bergstra, J.A., and Klop, J.W. Conditional rewrite rules: confluency and termination. Report IW 198/82, Stichting Mathematisch Centrum, Amsterdam, 1982.Google Scholar
  5. [Ber78]
    Berry, Stable models of typed lambda-calculi, in Proc. 5th Int. Conf. on Automata, Languages, and Programming, eds. G. Ausiello and C Böhm. Lecture Notes in Computer Science 62 (Springer, 1978).Google Scholar
  6. [Bru87]
    Brus, T.H., van Eekelen, M.C.J.D., van Leer, M.O., and Plasmeijer, M.J. Clean: a language for functional graph rewriting. Internal report 95, Computing Science Department, University of Nijmegen, (1987).Google Scholar
  7. [Bur80]
    Burstall, R.M., MacQueen, D.B., and Sannella, D.T. HOPE: an experimental applicative language. Report CSR-62-80, Department of Computer Science, University of Edinburgh, (1980).Google Scholar
  8. [Gla87a]
    Glauert, J.R.W., Kennaway, J.R., and Sleep, M.R. Dactl: a computational model and compiler target language. University of East Anglia, (1987).Google Scholar
  9. [Gla87b]
    Glauert, J.R.W., Kennaway, J.R., Sleep, M.R., Holt, N., Reeve, M., and Watson, I. Specification of Core Dactl1. University of East Anglia, (1987).Google Scholar
  10. [Gla87c]
    Glauert, J.R.W., Kennaway, J.R., Sleep, M.R., Holt, N., Reeve, M., and Watson, I. Dactl Language Specification. University of East Anglia, (to appear, 1987).Google Scholar
  11. [Hue79]
    Huet, G, and Lévy, J.J. Call by need computations in non-ambiguous term rewriting systems. Report 359, IRIA, (1979).Google Scholar
  12. [Hue80]
    Huet, G. and Oppen, Equations and rewrite rules: a survey. Report CSL-111, SRI International, (1980).Google Scholar
  13. [Lav87]
    Laville, A. Lazy pattern-matching in the ML language. Report 664, INRIA, (1987).Google Scholar
  14. [Mil84]
    Milner, R. A proposal for standard ML, in Proc. ACM Conf. on Lisp and Functional Programming, 184–197, (1984)Google Scholar
  15. [Pey87]
    Peyton-Jones, S.L. The Implementation of Functional Programming Languages. (Prentice-Hall, 1987).Google Scholar
  16. [Tur85]
    Turner, D.A. Miranda: a non-strict language with polymorphic types. in Proc. Conf. on Functional Programming Languages and Computer Architecture, ed. J.P. Jouannaud, Lecture Notes in Computer Science 201, (Springer, 1985).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • J. R. Kennaway
    • 1
  1. 1.School of Information SystemsUniversity of East AngliaNorwichU.K.

Personalised recommendations