A model for I/O in equational languages with don't care non-determinism

  • H. R. Walters
  • J. F. Th. Kamperman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1130)


Existing models for I/O in side-effect free languages focus on functional languages, which are usually based on a largely deterministic reduction strategy, allowing for a strict sequentialization of I/O operations. In concurrent logic programming languages a model is used which allows for don't care non-determinism. We apply this model to equational languages, which are closely related to functional languages, but exhibit don't care non-determinism. The semantics are formulated as constrained narrowing, a relation that contains the rewrite relation, and is contained in the narrowing relation.

We present constrained narrowing and some of its properties; a constructive method to transform conventional term rewriting systems (TRSs) to constrained narrowing systems (CNSs); and a discussion on requirements for an implementation.


Normal Form Function Symbol Operational Semantic Functional Programming Functional 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. 1.
    P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of i/o in functional languages. In John Launchbury, editor, Proceedings Glasgow Workshop on Functional Programming. Springer-Verlag, 1992.Google Scholar
  2. 2.
    J.A. Bergstra, J. Heering, and P. Klint, editors. Algebraic Specification. ACM Press Frontier Series. The ACM Press in co-operation with Addison-Wesley, 1989.Google Scholar
  3. 3.
    N. Dershowitz and J.-P Jouannaud. Rewrite systems. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Vol B., pages 243–320. Eisevier Science Publishers, 1990.Google Scholar
  4. 4.
    Michael Hanus. Combining lazy narrowing and simplification. In Proceedings of the International Conference on Programming Language Implementation and Logic Programming, PLILP '94, 1994.Google Scholar
  5. 5.
    Pieter H. Hartel, Marc Feeley, et al. Benchmarking implementations of functional languages with “pseudoknot”, a float-intensive benchmark. Journal of Functional Programming, 1996. Accepted for publication.Google Scholar
  6. 6.
    J.M. Hullot. Canonical forms and unification. In Proceedings of the 5th Conference on Automated Deduction, volume 87 of Lecture Notes in Computer Science, pages 318–334. Springer-Verlag, 1980.Google Scholar
  7. 7.
    Simon L. Peyton Jones and Philip Wadler. Imperative functional programming. In ACM Symposium on Principles Of Programming Languages (POPL), pages 71–84, 1993.Google Scholar
  8. 8.
    C. Kirchner, H. Kirchner, and J. Meseguer. Operational Semantics of OBJ-3. In T. Lepistö and A. Salomaa, editors, Proceedings of the Fifteenth International Conference on Automata, Languages and Programming, volume 317 of Lecture Notes in Computer Science, pages 287–301, 1988.Google Scholar
  9. 9.
    J.W. Klop. Term rewriting systems. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, Volume 2., pages 1–116. Oxford University Press, 1992.Google Scholar
  10. 10.
    P.J. Landin. A correspondence between algol 60 and church's lambda-notation: Parts i and ii. Communications of the ACM, 8(2,3):89–101,158–165, February and March 1965.Google Scholar
  11. 11.
    Aart Middeldorp, Satoshi Okui, and Tesuo Ida. Lazy narrowing: Strong completeness and eager variable elimination. In Proceedings of the 20th Colloquium on Trees in Algebra and Programming, Lecture Notes in Computer Science. Springer-Verlag, 1995.Google Scholar
  12. 12.
    E. Moggi. Computational lambda calculus and monads. In Logic in Computer Science. IEEE, 1989.Google Scholar
  13. 13.
    U.S. Reddy. Narrowing as the operational semantics of functional languages. In Proceedings of the IEEE International Symposium on Logic Programming, pages 1387–151, 1985.Google Scholar
  14. 14.
    E. Shapiro. The family of concurrent logic programming languages. Technical Report CS89-08, Department of Applied Mathematics and Computer Science, The Weizmann Institute of Science, May 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • H. R. Walters
    • 1
  • J. F. Th. Kamperman
    • 1
  1. 1.CWIGB AmsterdamThe Netherlands

Personalised recommendations