Denotational abstract interpretation of functional logic programs

  • Frank Zartmann
Logic Programming II
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1302)


Functional logic languages amalgamates functional and logic program paradigms. Their computation principle is a generalization of the reduction principle of functional languages and the resolution principle of logic languages. All these languages have a clear model theoretic semantics, i.e. they are based on the principle of separation of logic and control. The lack of „control information” in programs requires complex data-flow analyses. Denotational abstract interpretation is a suitable framework for program analyses. We introduce a denotational semantics for needed narrowing and exemplify the use of this semantics by a demandedness analysis.


Definitional Tree Function Symbol Abstract Interpretation Demand Pattern Abstract Domain 
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. 1.
    S. Antoy. Definitional trees. In ALP, volume 632 of LNCS, pages 143–157. Springer, 1992.Google Scholar
  2. 2.
    S. Antoy, R. Echahed, and M. Hanus. A needed narrowing strategy. In Symposium on Principles of Programming Languages (POPL'94), volume 21, pages 268–279. ACM, 1994.Google Scholar
  3. 3.
    G.L. Burn. Evaluation transformer-a model for the parallel evaluation of functional 2701 0699 V 2 languages (extended abstract). In Proc. of the 3th Conference on Functional 2701 0699 V 3 Languages and Computer Architecture, volume 274 of LNCS, pages 446–470. 2701 0699 V 3 Springer, 1987.Google Scholar
  4. 4.
    G.L. Burn. Lazy Functional Languges: Abstract Interpretation and Compilation. Research Monographs in Parallel and Distributed Computing. MIT Press, 1991.Google Scholar
  5. 5.
    P. Cousot and R. Cousot. A unified lattice model for static analysis of programs by construction of approximation of fixpoints. In Proc. of the 4th ACM Symposium on Principles of Programming Languages (POPL), pages 238–252, 1977.Google Scholar
  6. 6.
    N. Dershowitz and J. Jouannaud. Rewrite systems. In J. Van Leeuwen, editor, Handbook of theoretical Computer Science, volume B, chapter 6, pages 243–320. Elsevier, 1990.Google Scholar
  7. 7.
    W. Hans, J. Marino-Carballo, J. J. Moreno-Navarro, H. Kuchen, and S. Winkler. Efficient lazy narrowing using demandedness analysis. In PLILP, volume 714 of 2701 0699 V 3 LNCS, pages 167–183. Springer, 1993.Google Scholar
  8. 8.
    M. Hanus. The integration of functions into logic programming: From theory to practice. Journal of Logic Programming, 19&20:583–628, 1994.Google Scholar
  9. 9.
    M. Harms. A unified computation model for functional logic programming. In Symposium on Principles of Programming Languages (POPL'97), volume 24, pages 80–93. ACM, 1997.Google Scholar
  10. 10.
    M. Harms and S. Lucas. Definition and analysis of a denotational semantics for needed narrowing. Technical Report DSIC 11/2/96, Universidad Politécnia de Valencia, 1996.Google Scholar
  11. 11.
    M. Kurihara and A. Ohuchi. Modularity in noncopying term rewriting. Theoretical Computer Science, 152:139–69, 1995.Google Scholar
  12. 12.
    K. Marriott, H. Sondergaard, and N. D. Jones. Denotational abstract interpretation of logic programs. ACM Transactions on Programming Languages, 16(3):607–648, May 1994.Google Scholar
  13. 13.
    A. Mycroft. The theory and practice of transforming call-by-need into call-by-value. 2701 0699 V 2 In Proc. of the 4th International Symposium on Programming Languages, 2701 0699 V 3 volume 83 of LNCS, pages 269–281. Springer, 1980.Google Scholar
  14. 14.
    C. Palamidessi. Algebraic properties of idempotent substitutions. In M.S. Paterson, editor, Proc. of 17th Int'l Colloquium on Automata, Languages and Programming, volume 443 of LNCS, pages 386–399. Springer, 1990.Google Scholar
  15. 15.
    R. Sekar and I. V. Ramakrishnan.Fast strictness analysis based on demand propagation. ACM Transactions on Programming Languages and Systems, 17(6):896–937, 1995.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Frank Zartmann
    • 1
  1. 1.RWTH Aachen, Informatik IIAachenGermany

Personalised recommendations