Skip to main content

Abstract debugging of logic programs

  • Conference paper
  • First Online:

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

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. 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. 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. F. Bourdoncle. Abstract debugging of higher-order imperative languages. In PLDI'93, pages 46–55, 1993.

    Google Scholar 

  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. 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. 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. 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. 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. 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. P. Cousot and R. Cousot. Abstract Interpretation and Applications to Logic Programs. Journal of Logic Programming, 13(2 & 3):103–179, 1992.

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. J. W. Lloyd. Declarative error diagnosis. New Generation Computing, 5(2):133–154, 1987.

    Google Scholar 

  23. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, Berlin, 1987. Second edition.

    Google Scholar 

  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. 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. 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.

    Article  Google Scholar 

  27. L. Vieille. Recursive query processing: the power of logic. Theoretical Computer Science, 69:1–53, 1989.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Laurent Fribourg Franco Turini

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Comini, M., Levi, G., Vitiello, G. (1994). Abstract debugging of logic programs. In: Fribourg, L., Turini, F. (eds) Logic Program Synthesis and Transformation — Meta-Programming in Logic. META LOPSTR 1994 1994. Lecture Notes in Computer Science, vol 883. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58792-6_27

Download citation

  • DOI: https://doi.org/10.1007/3-540-58792-6_27

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58792-7

  • Online ISBN: 978-3-540-49104-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics