Dynamic detection of determinism in functional logic languages

  • Rita Loogen
  • Stephan Winkler
Sessvon: Optimization Techniques
Part of the Lecture Notes in Computer Science book series (LNCS, volume 528)


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.


Logic Program Function Symbol Operational Semantic Choice Point Functional Logic 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Balboni et al. 89]
    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. [Bellia, Levi 86]
    M. Bellia, G. Levi: The Relation between Logic and Functional Languages, Journal of Logic Programming, Vol.3, 1986, 217–236.Google Scholar
  3. [Bosco et al. 89a]
    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. [Bosco et al. 89b]
    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: Bakker (ed.): Languages for Parallel Architectures: Design, Semantics, Implementation Models, Wiley 1989.Google Scholar
  5. [Chakravarty, Lock 91]
    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. [DeGroot, Lindstrom 86]
    D.DeGroot, G.Lindstrom (eds.): Logic Programming: Functions, Relations, Equations, Prentice Hall 1986.Google Scholar
  7. [Hanus 90]
    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. [Hanus 91]
    M.Hanus: Efficient Implementation of Narrowing and Rewriting, Draft Paper, University of Dortmund 1991.Google Scholar
  9. [Kaplan 84]
    S.Kaplan: Fair conditional term rewriting systems: unification, termination and confluence, Technical Report no. 194, University of Orsay 1984.Google Scholar
  10. [Kuchen et al. 90]
    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. [Loogen 91]
    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. [Moreno, Rodríguez 88]
    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. [Moreno, Rodríguez 89]
    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. [Moreno et al. 90]
    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. [Mück 90]
    A.Mück: Compilation of Narrowing, Workshop on Programming Language Implementation and Logic Programming (PLILP) 1990, LNCS 456, Springer Verlag 1990.Google Scholar
  16. [Reddy 87]
    U.S. Reddy: Functional Logic Languages, Part I, Workshop on Graph Reduction, LNCS 279, Springer Verlag 1987, 401–425.Google Scholar
  17. [Warren 83]
    D.H.D. Warren: An Abstract Prolog Instruction Set, Technical Note 309, SRI International, Menlo Park, California, October 1983.Google Scholar
  18. [Winkler 91]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Rita Loogen
    • 1
  • Stephan Winkler
    • 1
  1. 1.RWTH Aachen, Lehrstuhl für Informatik IIAachenGermany

Personalised recommendations