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”.
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
Michael Hanus. Combining lazy narrowing and simplification. In Proceedings of the International Conference on Programming Language Implementation and Logic Programming, PLILP '94, 1994.
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.
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.
Simon L. Peyton Jones and Philip Wadler. Imperative functional programming. In ACM Symposium on Principles Of Programming Languages (POPL), pages 71–84, 1993.
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.
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.
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.
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.
E. Moggi. Computational lambda calculus and monads. In Logic in Computer Science. IEEE, 1989.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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