Advertisement

Program Debugging and Validation Using Semantic Approximations and Partial Specifications

  • M. Hermenegildo
  • G. Puebla
  • F. Bueno
  • P. López-García
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2380)

Abstract

The technique of Abstract Interpretation [11] has allowed the development of sophisticated program analyses which are provably correct and practical. The semantic approximations produced by such analyses have been traditionally applied to optimization during program compilation. However, recently, novel and promising applications of semantic approximations have been proposed in the more general context of program validation and debugging [3,9,7].

Keywords

Logic Program Logic Programming Constraint Program Abstract Interpretation Prolog Program 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    K. R. Apt and E. Marchiori. Reasoning about Prolog programs: from modes through types to assertions. Formal Aspects of Computing, 6(6):743–765, 1994.zbMATHCrossRefGoogle Scholar
  2. [2]
    K. R. Apt and D. Pedreschi. Reasoning about termination of pure PROLOG programs. Information and Computation, 1(106):109–157, 1993.CrossRefMathSciNetGoogle Scholar
  3. [3]
    F. Bourdoncle. Abstract debugging of higher-order imperative languages. In Programming Languages Design and Implementation’93, pages 46–55, 1993.Google Scholar
  4. [4]
    J. Boye, W. Drabent, and J. Małuszyński. Declarative diagnosis of constraint programs: an assertion-based approach. In Proc. of the 3rd. Int’l Workshop on Automated Debugging-AADEBUG’97, pages 123–141, Linköping, Sweden, May 1997. U. of Linköping Press.Google Scholar
  5. [5]
    F. Bueno, D. Cabeza, M. Carro, M. Hermenegildo, P. López-García, and G. Puebla. The Ciao Prolog System. Reference Manual. TR CLIP3/97.1, School of Computer Science, Technical University of Madrid (UPM), August 1997. System and on-line version of the manual available at http://clip.dia.fi.upm.es/Software/Ciao/.
  6. [6]
    F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, number 1058 in LNCS, pages 108–124, Sweden, April 1996. Springer-Verlag.Google Scholar
  7. [7]
    F. Bueno, P. Deransart, W. Drabent, G. Ferrand, M. Hermenegildo, J. Maluszyn-ski, and G. Puebla. On the Role of Semantic Approximations in Validation and Diagnosis of Constraint Logic Programs. In Proc. of the 3rd. Int’l Workshop on Automated Debugging-AADEBUG’97, pages 155–170, Linköping, Sweden, May 1997. U. of Linköping Press.Google Scholar
  8. [8]
    B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems, 16(1):35–101, 1994.CrossRefGoogle Scholar
  9. [9]
    M. Comini, G. Levi, M. C. Meo, and G. Vitiello. Proving properties of logic programs by abstract diagnosis. In M. Dams, editor, Analysis and Verification of Multiple-Agent Languages, 5th LOMAPS Workshop, number 1192 in Lecture Notes in Computer Science, pages 22–50. Springer-Verlag, 1996.Google Scholar
  10. [10]
    M. Comini, G. Levi, M. C. Meo, and G. Vitiello. Abstract diagnosis. Journal of Logic Programming, 39(1–3):43–93, 1999.zbMATHCrossRefMathSciNetGoogle Scholar
  11. [11]
    P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In 4th. ACM Symp. on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  12. [12]
    M. García de la Banda, M. Hermenegildo, M. Bruynooghe, V. Dumortier, G. Janssens, and W. Simoens. Global Analysis of Constraint Logic Programs. ACM Transactions on Programming Languages and Systems, 18(5):564–615, September 1996.Google Scholar
  13. [13]
    P. Deransart. Proof methods of declarative properties of definite programs. Theoretical Computer Science, 118:99–166, 1993.zbMATHCrossRefMathSciNetGoogle Scholar
  14. [14]
    P. Deransart, M. Hermenegildo, and J. Maluszynski. Analysis and Visualization Tools for Constraint Programming. Number 1870 in LNCS. Springer-Verlag, September 2000.Google Scholar
  15. [15]
    W. Drabent, S. Nadjm-Tehrani, and J. Małuszyński. The Use of Assertions in Algorithmic Debugging. In Proceedings of the Intl. Conf. on Fifth Generation Computer Systems, pages 573–581, 1988.Google Scholar
  16. [16]
    W. Drabent, S. Nadjm-Tehrani, and J. Maluszynski. Algorithmic debugging with assertions. In H. Abramson and M.H. Rogers, editors, Meta-programming in Logic Programming, pages 501–522. MIT Press, 1989.Google Scholar
  17. [17]
    G. Ferrand. Error diagnosis in logic programming. J. Logic Programming, 4:177–198, 1987.CrossRefMathSciNetzbMATHGoogle Scholar
  18. [18]
    J.P. Gallagher and D.A. de Waal. Fast and precise regular approximations of logic programs. In Pascal Van Hentenryck, editor, Proc. of the 11th International Conference on Logic Programming, pages 599–613. MIT Press, 1994.Google Scholar
  19. [19]
    M. Hermenegildo. A Documentation Generator for (C)LP Systems. In International Conference on Computational Logic, CL2000, number 1861 in LNAI, pages 1345–1361. Springer-Verlag, July 2000.Google Scholar
  20. [20]
    M. Hermenegildo, F. Bueno, G. Puebla, and P. López-García. Program Analysis, Debugging and Optimization Using the Ciao System Preprocessor. In 1999 International Conference on Logic Programming, pages 52–66, Cambridge, MA, November 1999. MIT Press.Google Scholar
  21. [21]
    M. Hermenegildo, G. Puebla, and F. Bueno. Using Global Analysis, Partial Specifications, and an Extensible Assertion Language for Program Validation and Debugging. In K. R. Apt, V. Marek, M. Truszczynski, and D. S. Warren, editors, The Logic Programming Paradigm: a 25-Year Perspective, pages 161–192. Springer-Verlag, July 1999.Google Scholar
  22. [22]
    P. Hill and J. Lloyd. The Goedel Programming Language. MIT Press, Cambridge MA, 1994.zbMATHGoogle Scholar
  23. [23]
    K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2/3):315–347, July 1992.Google Scholar
  24. [24]
    G. Puebla, F. Bueno, and M. Hermenegildo. A Generic Preprocessor for Program Validation and Debugging. In P. Deransart, M. Hermenegildo, and J. Maluszynski, editors, Analysis and Visualization Tools for Constraint Programming, number 1870 in LNCS, pages 63–107. Springer-Verlag, September 2000.Google Scholar
  25. [25]
    G. Puebla, F. Bueno, and M. Hermenegildo. An Assertion Language for Constraint Logic Programs. In P. Deransart, M. Hermenegildo, and J. Maluszynski, editors, Analysis and Visualization Tools for Constraint Programming, number 1870 in LNCS, pages 23–61. Springer-Verlag, September 2000.CrossRefGoogle Scholar
  26. [26]
    G. Puebla, F. Bueno, and M. Hermenegildo. Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs. In Logic-based Program Synthesis and Transformation (LOPSTR’99), number 1817 in LNCS, pages 273–292. Springer-Verlag, 2000.CrossRefGoogle Scholar
  27. [27]
    Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury: an efficient purely declarative logic programming language. JLP, 29(1–3), October 1996.Google Scholar
  28. [28]
    E. Vetillard. Utilisation de Declarations en Programmation Logique avec Con-straintes. PhD thesis, U. of Aix-Marseilles II, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • M. Hermenegildo
    • 1
  • G. Puebla
    • 1
  • F. Bueno
    • 1
  • P. López-García
    • 1
  1. 1.School of Computer ScienceTechnical University of MadridSpain

Personalised recommendations