Abstract debugging of logic programs

  • Marco Comini
  • Giorgio Levi
  • Giuliana Vitiello
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 883)


Our debugging method applies to positive logic programs, under the leftmost selection rule. All our results can easily be extended to local selection rules [27].

A more interesting extension is related to the overall PROLOG computation rule, including the depth-first search based on the clause ordering. Abstract debugging can be based on a PROLOG version of the semantic framework in

Abstract debugging can be viewed as yet another program verification method, where we are concerned with partial correctness properties and the specification is extensional. An interesting problem is that of better understanding the relation among the various techniques for proving program properties, namely debugging, verification and abstract interpretation.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    K. R. Apt. Introduction to Logic Programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, pages 495–574. Elsevier, Amsterdam and The MIT Press, Cambridge, 1990.Google Scholar
  2. 2.
    A. Bossi, M. Bugliesi, and M. Fabris. Fixpoint semantics for PROLOG. In D. S. Warren, editor, Proc. Tenth Int'l Conf. on Logic Programming, pages 374–389. The MIT Press, Cambridge, Mass., 1993.Google Scholar
  3. 3.
    A. Bossi, M. Gabbrielli, G. Levi, and M. Martelli. The s-semantics approach: Theory and applications. Journal of Logic Programming, 19–20:149–197, 1994.Google Scholar
  4. 4.
    A. Bossi, M. Gabbrielli, G. Levi, and M. C. Meo. A Compositional Semantics for Logic Programs. Theoretical Computer Science, 122(1–2):3–47, 1994.Google Scholar
  5. 5.
    F. Bourdoncle. Abstract debugging of higher-order imperative languages. In PLDI'93, pages 46–55, 1993.Google Scholar
  6. 6.
    K. L. Clark. Predicate logic as a computational formalism. Res. Report DOC 79/59, Imperial College, Dept. of Computing, London, 1979.Google Scholar
  7. 7.
    P. Codognet and G. Filè. Computations, Abstractions and Constraints. In Proc. Fourth IEEE Int'l Conference on Computer Languages. IEEE Press, 1992.Google Scholar
  8. 8.
    M. Comini and G. Levi. An algebraic theory of observables. In M. Bruynooghe, editor, Proc. 1994 Int'l Symposium on Logic Programming. The MIT Press, Cambridge, Mass., 1994. To appear.Google Scholar
  9. 9.
    A. Cortesi, G. Filè, and W. Winsborough. Prop revisited: Propositional Formula as Abstract Domain for Groundness Analysis. In Proc. Sixth IEEE Symp. on Logic In Computer Science, pages 322–327. IEEE Computer Society Press, 1991.Google Scholar
  10. 10.
    P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proc. Fourth ACM Symp. Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  11. 11.
    P. Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Proc. Sixth ACM Symp. Principles of Programming Languages, pages 269–282, 1979.Google Scholar
  12. 12.
    P. Cousot and R. Cousot. Abstract Interpretation and Applications to Logic Programs. Journal of Logic Programming, 13(2 & 3):103–179, 1992.CrossRefGoogle Scholar
  13. 13.
    M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. Declarative Modeling of the Operational Behavior of Logic Languages. Theoretical Computer Science, 69(3):289–318, 1989.CrossRefGoogle Scholar
  14. 14.
    M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. A Model-Theoretic Reconstruction of the Operational Semantics of Logic Programs. Information and Computation, 102(1):86–113, 1993.Google Scholar
  15. 15.
    G. Ferrand. Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro's Method. Journal of Logic Programming, 4:177–198, 1987.Google Scholar
  16. 16.
    M. Gabbrielli, G. Levi, and M. C. Meo. Observational Equivalences for Logic Programs. In K. Apt, editor, Proc. Joint Int'l Conf. and Symposium on Logic Programming, pages 131–145. The MIT Press, Cambridge, Mass., 1992. Extended version to appear in Information and Computation.Google Scholar
  17. 17.
    M. Gabbrielli, G. Levi, and M. C. Meo. A resultants semantics for PROLOG. Technical report, Dipartimento di Informatica, Università di Pisa, 1994.Google Scholar
  18. 18.
    R. Giacobazzi. On the Collecting Semantics of Logic Programs. In F. S. de Boer and M. Gabbrielli, editors, Verification and Analysis of Logic Languages, Proc. of the Post-Conference ICLP Workshop, pages 159–174, 1994.Google Scholar
  19. 19.
    R. Giacobazzi, S. K. Debray, and G. Levi. A Generalized Semantics for Constraint Logic Programs. In Proceedings of the International Conference on Fifth Generation Computer Systems 1992, pages 581–591, 1992.Google Scholar
  20. 20.
    R. Giacobazzi, G. Levi, and S. K. Debray. Joining Abstract and Concrete Computations in Constraint Logic Programming. In M. Nivat, C. Rattray, T. Rus, and G. Scollo, editors, Algebraic Methodology and Software Technology (AMAST'93), Proceedings of the Third International Conference on Algebraic Methodology and Software Technology, Workshops in Computing, pages 111–127. Springer-Verlag, Berlin, 1993.Google Scholar
  21. 21.
    J. Jaffar and J. L. Lassez. Constraint Logic Programming. In Proc. Fourteenth Annual ACM Symp. on Principles of Programming Languages, pages 111–119. ACM, 1987.Google Scholar
  22. 22.
    J. W. Lloyd. Declarative error diagnosis. New Generation Computing, 5(2):133–154, 1987.Google Scholar
  23. 23.
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, Berlin, 1987. Second edition.Google Scholar
  24. 24.
    D. Micciancio. Interpretazione astratta di programmi logici con il controllo di PROLOG. Master's thesis, Dipartimento di Informatica, Università di Pisa, 1994. in italian.Google Scholar
  25. 25.
    E. Y. Shapiro. Algorithmic program debugging. In Proc. Ninth Annual ACM Symp. on Principles of Programming Languages, pages 412–531. ACM Press, 1982.Google Scholar
  26. 26.
    M. H. van Emden and R. A. Kowalski. The semantics of predicate logic as a programming language. Journal of the ACM, 23(4):733–742, 1976.CrossRefGoogle Scholar
  27. 27.
    L. Vieille. Recursive query processing: the power of logic. Theoretical Computer Science, 69:1–53, 1989.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Marco Comini
    • 1
  • Giorgio Levi
    • 1
  • Giuliana Vitiello
    • 2
  1. 1.Dipartimento di InformaticaUniversità di PisaPisaItaly
  2. 2.Dipartimento di Informatica ed ApplicazioniUniversità di SalernoBaronissiItaly

Personalised recommendations