Abstract
We present a system for the efficient implementation via graph reduction of functional-logic programming languages. In contrast to existing systems, ours allows sharing not only of fully common subexpressions but also of partially common expressions formed across narrowings, and allows both lazy and eager evaluation semantics. This sharing across narrowings is achieved by adapting a technique described by Lamping for optimal reduction of lambda terms.
This research was supported by contract LEQSF RD-A-19 of the Louisiana Board of Regents and by the Tulane Committee on Research.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Henk Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland Publishing Company, 1981.
J. Darlington, A. J. Field, and H. Pull. Unification of functional and logic languages. In DeGroot and Lindstrom, editors, Logic Programming, Relations, Functions and Equations, pages 37–70. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.
Matthias Felleisen and Robert Hieb. The revised report on the syntactic theories of sequential control and state. Technical Report COMP TR89-100, Rice University, 1989.
Michael Hanus. The integration of functions into logic programming: From theory to practice. To appear in the Journal of Logic Programming. Also available as Technical Report MPI-I-94-201, Max-Planck-Institut für Informatik, Saarbrücken.
John Lamping. An algorithm for optimal lambda calculus reduction. In Conference Record, ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California. ACM Press, January 1990.
Feixiong Liu. Towards lazy evaluation, sharing and non-determinism in resolution based functional logic languages. In Sixth ACM Conference on Functional Programming Languages and Computer Architecture, Copenhagen, pages 201–209. ACM Press, June 1993.
Rita Loogen, F. L. Fraguas, and Mario Rodríguez-Artalejo. A demand driven computation strategy for lazy narrowing. In Lecture Notes in Computer Science 714, pages 184–200. Fifth International Symposium on Programming Language Implementation and Logic Programming, Springer-Verlag, August 1993.
John Maraist. An abstract machine for compiling set-based functional logic languages. Master's thesis, Tulane University, New Orleans, Louisiana 70118, August 1993. Revised version, November 1993.
Simon L. Peyton Jones. The Implementation of Functional Programming Languages. International Series in Computer Science. Prentice Hall, 1987.
Uday S. Reddy. Logic Languages Based on Functions: Semantics and Implementation. PhD thesis, University of Utah, 1986.
Frank S. K. Silbermann and Bharat Jayaraman. A domain-theoretic approach to functional and logic programming. Journal of Functional Programming, 2(3):273–321, 1992.
Christopher P. Wadsworth. Semantics and Pragmatics of the Lambda Calculus. PhD thesis, Oxford University, 1971.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Maraist, J., Silbermann, F.S.K. (1994). A graph reduction technique with sharing across narrowings for functional-logic languages. In: Hermenegildo, M., Penjam, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1994. Lecture Notes in Computer Science, vol 844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58402-1_25
Download citation
DOI: https://doi.org/10.1007/3-540-58402-1_25
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58402-5
Online ISBN: 978-3-540-48695-4
eBook Packages: Springer Book Archive