Abstract
Although there exist a lot of deterministic implementations of functional logic programming languages, up to now, none of them has been verified. For abolishing this grievance, we present a simple implementation of the leftmost outermost narrowing strategy for a restricted functional logic programming language and prove its correctness.
Keywords
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.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In POPL'94, pages 268–279. Portland, 1994.
L. Augustsson. A compiler for lazy ML. In Proceedings of the ACM Symposium on Lisp and Functional Programming, pages 218–227, 1984.
E. Börger, F. Lopez-Fraguas, and M. Rodriguez-Artalejo. A model for mathematical analysis of functional logic languages and their implementations. In IFIP'94, Vol. I, pages 410–415. IFIP Transactions A-51, 1994. North-Holland.
E. Börger and D. Rosenzweig. The WAM — definition and compiler correctness. Technical Report TR-14/92, Dipartimento di Informatica, Universita di Pisa, 1992.
R. Echahed. On completeness of narrowing strategies. In CAAP'88, pages 89–101. Springer-Verlag, 1988. LNCS 299.
J. Engelfriet and H. Vogler. Modular tree transducers. Theoretical Computer Science, 78:267–304, 1991.
H. Faßbender. E-Unifikation für primitiv-rekursive Baumfunktionen. PhD thesis, Universität Ulm, Fakultät für Informatik, März 1995.
H. Faßbender and H. Vogler. A universal unification algorithm based on unification-driven leftmost outermost narrowing. Acta Cybernetica, 11(3):139–167, 1994.
M. Fay. First-order unification in an equational theory. In Proceeding of the 4th workshop on automated deduction, Austin, pages 161–167, 1979.
Y. Gurevich. Evolving algebras. A tutorial introduction. Bulletin of the EATCS, 43:264–284, 1991.
W. Hans, R. Loogen, and S. Winkler. On the interaction of lazy evaluation and backtracking. In PLILP'92, pages 355–369. Springer-Verlag, 1992. LNCS 631.
M. Hanus. The integration of functions into logic programming: From theory to practice. Journal of Logic Programming, 19,20:583–628, 1994.
J.M. Hullot. Canonical forms and unification. In Proceedings of the 5th conference on automated deduction, pages 318–334. Springer-Verlag, 1980. LNCS 87.
T. Johnsson. Efficient compilation of lazy evaluation. SIGPLAN Notices, 6:58–69, 1984.
H. Kuchen, R. Loogen, J.J. Moreno-Navarro, and M. Rodriguez-Artalejo. Graphbased implementation of a functional logic language. In ESOP'90, pages 271–290. Springer-Verlag, 1990. LNCS 432.
D. Lester. The G-Machine as a representation of stack semantics. In Functional Programming Languages and Computer Architecture, pages 46–59. Springer-Verlag, 1987. LNCS 274.
J.J. Moreno-Navarro, H. Kuchen, R. Loogen, and M. Rodriguez-Artalejo. Lazy narrowing in a graph machine. In ALP'90, pages 298–317. Springer-Verlag, 1990. LNCS 463.
J.J. Moreno-Navarro and M. Rodriguez-Artalejo. Logic-programming with functions and predicates: the language BABEL. Journal of Logic Programming, 12:191–223, 1992.
A. Mück. CAMEL: an extension of the categorical abstract machine to compile functional/logic programs. In PLILP'92. Springer-Verlag, 1992. LNCS 631.
A. Mück. CAMEL: a verified abstract machine for functional logic programming. In A. Mück, editor, Proceedings of the Second International Workshop on Functional/ Logic Programming. University of Munich, Number 9311, 1993.
Rinus Plasmeijer and Marko van Eekelen. Functional Programming and Parallel Graph Rewriting. International Computer Science Series. Addison Wesley, 1993.
U.S. Reddy. Narrowing as the operational semantics of functional languages. In Symposium on Logic Programming, pages 138–151. IEEE Comp. Soc. Press, 1985.
D.H.D. Warren. An abstract prolog instruction set. Technical Report 309, SRI International, 1983.
J.H. You. Enumerating outer narrowing derivations for constructor-based term rewriting systems. Journal of Symbolic Computation, 7:319–341, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Faßbender, H. (1995). A verified implementation of narrowing. In: Hermenegildo, M., Swierstra, S.D. (eds) Programming Languages: Implementations, Logics and Programs. PLILP 1995. Lecture Notes in Computer Science, vol 982. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026814
Download citation
DOI: https://doi.org/10.1007/BFb0026814
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60359-7
Online ISBN: 978-3-540-45048-1
eBook Packages: Springer Book Archive