Skip to main content

Dynamic detection of determinism in functional logic languages

  • Sessvon: Optimization Techniques
  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1991)

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

Abstract

Programs in functional logic languages usually have to satisfy a nonambiguity condition, that semantically ensures completeness of conditional narrowing and pragmatically ensures that the defined (non-boolean) functions are deterministic and do not yield different result values for the same argument tuples. The nonambiguity condition allows the dynamic detection of determinism in implementations of functional logic languages. In this paper we show how to achieve this and what can be gained by this optimization.

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. G.P. Balboni, P.G. Bosco, C. Cecchi, R. Melen, C. Moiso, G. Sofi: Implementation of a Parallel Logic Plus Functional Language, in: P. Treleaven (ed.), Parallel Computers: Object Oriented, Functional and Logic, Wiley 1989.

    Google Scholar 

  2. M. Bellia, G. Levi: The Relation between Logic and Functional Languages, Journal of Logic Programming, Vol.3, 1986, 217–236.

    Google Scholar 

  3. P.G.Bosco, C.Cecchi, C.Moiso: An extension of WAM for K-LEAF: A WAM-based compilation of conditional narrowing, Int. Conf. on Logic Programming, Lisboa, 1989.

    Google Scholar 

  4. P.G.Bosco, C.Cecchi, E.Giovannetti, C.Moiso, C.Palamidessi: Using resolution for a sound and efficient integration of logic and functional programming, in: J.de Bakker (ed.): Languages for Parallel Architectures: Design, Semantics, Implementation Models, Wiley 1989.

    Google Scholar 

  5. M.M.T.Chakravarty, H.C.R.Lock: The Implementation of Lazy Narrowing, Symp. on Prog. Language Impl. and Logic Prog. (PLILP) 1991, LNCS, Springer Verlag 1991.

    Google Scholar 

  6. D.DeGroot, G.Lindstrom (eds.): Logic Programming: Functions, Relations, Equations, Prentice Hall 1986.

    Google Scholar 

  7. M.Hanus: Compiling Logic Programs with Equality, Workshop on Programming Language Implementation and Logic Programming (PLILP) 1990, LNCS 456, Springer Verlag 1990.

    Google Scholar 

  8. M.Hanus: Efficient Implementation of Narrowing and Rewriting, Draft Paper, University of Dortmund 1991.

    Google Scholar 

  9. S.Kaplan: Fair conditional term rewriting systems: unification, termination and confluence, Technical Report no. 194, University of Orsay 1984.

    Google Scholar 

  10. H.Kuchen, R.Loogen, J.J. Moreno-Navarro, M.Rodríguez-Artalejo: Graph-based Implementation of a Functional Logic Language, European Symp. on Prog. (ESOP) 1990, LNCS 432, Springer Verlag 1990.

    Google Scholar 

  11. R.Loogen: From Reduction Machines to Narrowing Machines, Coll. on Combining Paradigms for Software Development, TAPSOFT 1991, LNCS 494, Springer Verlag 1991.

    Google Scholar 

  12. J.J.Moreno-Navarro, M.Rodríguez-Artalejo: BABEL: A functional and logic programming language based on constructor discipline and narrowing, Conference on Algebraic and Logic Programming 1988, LNCS 343, Springer Verlag 1989.

    Google Scholar 

  13. J.J.Moreno-Navarro, M.Rodríguez-Artalejo: Logic Programming with Functions and Predicates: The Language BABEL, Technical Report DIA/89/3, Universidad Complutense, Madrid 1989, to appear in the Journal of Logic Programming.

    Google Scholar 

  14. J.J.Moreno-Navarro, H.Kuchen, R.Loogen, M.Rodríguez-Artalejo: Lazy Narrowing in a Graph Machine, Conf. on Algebraic and Logic Prog. (ALP) 1990, LNCS 463, Springer Verlag 1990.

    Google Scholar 

  15. A.Mück: Compilation of Narrowing, Workshop on Programming Language Implementation and Logic Programming (PLILP) 1990, LNCS 456, Springer Verlag 1990.

    Google Scholar 

  16. U.S. Reddy: Functional Logic Languages, Part I, Workshop on Graph Reduction, LNCS 279, Springer Verlag 1987, 401–425.

    Google Scholar 

  17. D.H.D. Warren: An Abstract Prolog Instruction Set, Technical Note 309, SRI International, Menlo Park, California, October 1983.

    Google Scholar 

  18. St. Winkler: Development of a Program System for the Functional Logic Language BABEL by Implementing a Program Environment, a Compiler and a Stack Based Abstract Machine, Diploma Thesis, RWTH Aachen, June 1991 (in german).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan Maluszyński Martin Wirsing

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Loogen, R., Winkler, S. (1991). Dynamic detection of determinism in functional logic languages. In: Maluszyński, J., Wirsing, M. (eds) Programming Language Implementation and Logic Programming. PLILP 1991. Lecture Notes in Computer Science, vol 528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54444-5_110

Download citation

  • DOI: https://doi.org/10.1007/3-540-54444-5_110

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54444-9

  • Online ISBN: 978-3-540-38362-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics