Skip to main content

A graph reduction technique with sharing across narrowings for functional-logic languages

  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 844))

  • 263 Accesses

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.

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  9. Simon L. Peyton Jones. The Implementation of Functional Programming Languages. International Series in Computer Science. Prentice Hall, 1987.

    Google Scholar 

  10. Uday S. Reddy. Logic Languages Based on Functions: Semantics and Implementation. PhD thesis, University of Utah, 1986.

    Google Scholar 

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

    Google Scholar 

  12. Christopher P. Wadsworth. Semantics and Pragmatics of the Lambda Calculus. PhD thesis, Oxford University, 1971.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics