Skip to main content

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

  • Contributions
  • Conference paper
  • First Online:
Recent Trends in Data Type Specification (ADT 1995, COMPASS 1995)

Abstract

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.

Partial support received from the Foundation for Computer Science Research in the Netherlands (SION) under project 612-17-418, “Generic Tools for Program Analysis and Optimization”.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. E. Moggi. Computational lambda calculus and monads. In Logic in Computer Science. IEEE, 1989.

    Google Scholar 

  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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Magne Haveraaen Olaf Owe Ole-Johan Dahl

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Walters, H.R., Kamperman, J.F.T. (1996). A model for I/O in equational languages with don't care non-determinism. In: Haveraaen, M., Owe, O., Dahl, OJ. (eds) Recent Trends in Data Type Specification. ADT COMPASS 1995 1995. Lecture Notes in Computer Science, vol 1130. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61629-2_61

Download citation

  • DOI: https://doi.org/10.1007/3-540-61629-2_61

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61629-0

  • Online ISBN: 978-3-540-70642-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics