Skip to main content

Optimal non-deterministic functional logic computations

  • Functional and Logic Programming
  • Conference paper
  • First Online:
Algebraic and Logic Programming (ALP 1997, HOA 1997)

Abstract

We show that non-determinism simplifies coding certain problems into programs. We define a non-confluent, but well-behaved class of rewrite systems for supporting non-deterministic computations in functional logic programming. We show the benefits of using this class on a few examples. We define a narrowing strategy for this class of systems and prove that our strategy is sound, complete, and optimal, modulo non-deterministic choices, for appropriate definitions of these concepts. We compare our strategy with related work and show that our overall approach is fully compatible with the current proposal of a universal, broad based functional logic language.

This work has been supported in part by the NSF grant CCR-9406751.

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. S. Antoy. Definitional trees. In Proc. of the 4th Intl. Conf. on Algebraic and Logic Programming, pages 143–157. Springer LNCS 632, 1992.

    Google Scholar 

  2. S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In Proc. 21st ACM Symposium on Principles of Programming Languages, pages 268–279, Portland, 1994. Full versions at URL vvv.cs.pdx.adu/~antoy/publications.html.

    Google Scholar 

  3. R. Bird and P. Wadler. Introduction to Functional Programming. Prentice Hall, New York, NY, 1988.

    Google Scholar 

  4. Curry: An integrated functional logic language. M. Hanus (ed.), Draft Dec. 5, 1996.

    Google Scholar 

  5. E. Eder. Properties of substitutions and unifications. Journal of Symbolic Computation, 1:31–46,1985.

    Google Scholar 

  6. J. C. González Moreno, F. J. López Fraguas, M. T. Hortalá González, and M. Rodréguez Artalejo. A rewriting logic for declarative programming. In ESOP' 96, Linköping, Sweden, April, 1996. LNCS 1058, Extended version TR DIA 95/5.

    Google Scholar 

  7. M. Hanus. On extra variables in (equational) logic programming. In Proc. Twelfth International Conference on Logic Programming, pages 665–679. MIT Press, 1995.

    Google Scholar 

  8. M. Hanus. A unified computation model for functional logic programming. In Proc. 24th ACM Symposium on Principles of Programming Languages, pages 80–93, Paris, 1997.

    Google Scholar 

  9. G. Huet and J. J. Lévy. Computations in orthogonal term rewriting systems. In J. L. Lassez and G. Plotkin, editors, Computational logic: essays in honour of Alan Robinson. MIT Press, Cambridge, MA, 1991. Previous version: Call by need computations in nonambiguous linear term rewriting systems, Technical Report 359, INRIA, Le Chesnay, France, 1979.

    Google Scholar 

  10. H. Hussmann. Nondeterministic algebraic specifications and nonconfluent rewriting. J. of Logic Programming, 12:237–255, 1992.

    Google Scholar 

  11. A. Middeldorp. Call by need computations to root-stable form. In Proc. 24th ACM Symposium on Principles of Programming Languages, pages 94–105, Paris, 1997.

    Google Scholar 

  12. R. A. O'Keefe. The Craft of Prolog. The MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  13. T. Suzuki, A. Middeldorp, and T. Ida. Level-confluence of conditional rewrite systems with extra variables in right-hand sides. In 6th International Conference on Rewriting Techniques and Applications, pages 179–193, Kaiserslautern, 1995. Lecture Notes in Computer Science 914.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michael Hanus Jan Heering Karl Meinke

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Antoy, S. (1997). Optimal non-deterministic functional logic computations. In: Hanus, M., Heering, J., Meinke, K. (eds) Algebraic and Logic Programming. ALP HOA 1997 1997. Lecture Notes in Computer Science, vol 1298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027000

Download citation

  • DOI: https://doi.org/10.1007/BFb0027000

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63459-1

  • Online ISBN: 978-3-540-69555-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics