Skip to main content

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

Abstract

In an advanced program development environment, such as that discussed in the introduction of this book, several tools may coexist which handle both the program and information on the program in different ways. Also, these tools may interact among themselves and with the user. Thus, the different tools and the user need some way to communicate. It is our design principle that such communication be performed in terms of assertions. Assertions are syntactic objects which allow expressing properties of programs. Several assertion languages have been used in the past in different contexts, mainly related to program debugging. In this chapter we propose a general language of assertions which is used in different tools for validation and debugging of constraint logic programs in the context of the DiSCiPl project. The assertion language proposed is parametric w.r.t. the particular constraint domain and properties of interest being used in each different tool. The language proposed is quite general in that it poses few restrictions on the kind of properties which may be expressed. We believe the assertion language we propose is of practical relevance and appropriate for the different uses required in the tools considered.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bossi, A., Gabbrielli, M., Levi, G., Martelli, M.: The s-semantics approach: Theory and applications. Journal of Logic Programming. Journal of Logic Programming 19&20 (1994)

    Google Scholar 

  2. Boye, J., Drabent, W., Małuszyński, J.: Declarative diagnosis of constraint programs: an assertion-based approach. In: Proc. of the 3rd. Int’l Workshop on Automated Debugging–AADEBUG 1997, Linköping, Sweden, pp. 123–141. U. of Linköping Press (May 1997)

    Google Scholar 

  3. Bueno, F., Cabeza, D., Carro, M., Hermenegildo, M., López-García, P., Puebla, G.: The Ciao Prolog System. Reference Manual. The Ciao System Documentation Series–TR CLIP3/97.1, School of Computer Science, Technical University of Madrid (UPM) (August 1997)

    Google Scholar 

  4. Bueno, F., Cabeza, D., Hermenegildo, M., Puebla, G.: Global Analysis of Standard Prolog Programs. In: Riis Nielson, H. (ed.) ESOP 1996. LNCS, vol. 1058, pp. 108–124. Springer, Heidelberg (1996)

    Google Scholar 

  5. Bueno, F., Deransart, P., Drabent, W., Ferrand, G., Hermenegildo, M., Małuszyński, J.: 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 1997, Linköping, Sweden, pp. 155–170. U. of Linköping Press (May 1997)

    Google Scholar 

  6. Bueno, F., López-García, P., Puebla, G., Hermenegildo, M.: The Ciao Prolog Preprocessor. Technical Report CLIP8/95.0.7.20, Technical University of Madrid (UPM), Facultad de Informática, 28660 Boadilla del Monte, Madrid, Spain (November 1999)

    Google Scholar 

  7. Cordes, D., Brown, M.: The Literate Programming Paradigm. IEEE Computer Magazine (June 1991)

    Google Scholar 

  8. Cousot, P.: Types as Abstract Interpretations. In: Symposium on Principles of Programming Languages, pp. 316–331. ACM Press, New York (1997)

    Google Scholar 

  9. Cousot, P., Cousot, R.: Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Fourth ACM Symposium on Principles of Programming Languages, pp. 238–252 (1977)

    Google Scholar 

  10. Dart, P.W., Zobel, J.: A regular type language for logic programs. In: Pfenning, F. (ed.) Types in Logic Programming, pp. 157–187. MIT Press, Cambridge (1992)

    Google Scholar 

  11. Drabent, W., Nadjm-Tehrani, S., Małuszyński, J.: The Use of Assertions in Algorithmic Debugging. In: Proceedings of the Intl. Conf. on Fifth Generation Computer Systems, pp. 573–581 (1988)

    Google Scholar 

  12. Drabent, W., Nadjm-Tehrani, S., Maluszynski, J.: Algorithmic debugging with assertions. In: Abramson, H., Rogers, M.H. (eds.) Meta-programming in Logic Programming, pp. 501–522. MIT Press, Cambridge (1989)

    Google Scholar 

  13. Friendly, L.: The Design of Distributed Hyperlink Program Documentation. In: Int’l. WS on Hypermedia Design, Workshops in Computing. Springer, Heidelberg (1996), Available from http://java.sun.com/docs/javadoc-paper.html

    Google Scholar 

  14. García de la Banda, M., Hermenegildo, M., Bruynooghe, M., Dumortier, V., Janssens, G., Simoens, W.: Global Analysis of Constraint Logic Programs. ACM Transactions on Programming Languages and Systems 18(5), 564–615 (1996)

    Article  Google Scholar 

  15. Hermenegildo, M.: A Documentation Generator for Logic Programming Systems. In: ICLP 1999 Workshop on Logic Programming Environments, pp. 80–97, N.M. State University (December 1999)

    Google Scholar 

  16. Hermenegildo, M., Bueno, F., Puebla, G., López-García, P.: Program Analysis, Debugging and Optimization Using the Ciao System Preprocessor. In: 1999 International Conference on Logic Programming, pp. 52–66. MIT Press, Cambridge (1999)

    Google Scholar 

  17. Hermenegildo, M., Puebla, G., Bueno, F.: Using Global Analysis, Partial Specifications, and an Extensible Assertion Language for Program Validation and Debugging. In: Apt, K.R., Marek, V., Truszczynski, M., Warren, D.S. (eds.) The Logic Programming Paradigm: a 25–Year Perspective, pp. 161–192. Springer, Heidelberg (1999)

    Google Scholar 

  18. Hill, P., Lloyd, J.: The Goedel Programming Language. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  19. Jaffar, J., Maher, M.J.: Constraint Logic Programming: A Survey. Journal of Logic Programming 19/20, 503–581 (1994)

    Article  MathSciNet  Google Scholar 

  20. Kelly, A., Macdonald, A., Marriott, K., Stuckey, P., Yap, R.: Effectiveness of optimizing compilation for CLP(R). In: Proceedings of Joint International Conference and Symposium on Logic Programming, pp. 37–51. MIT Press, Cambridge (1996)

    Google Scholar 

  21. Knuth, D.: Literate programming. Computer Journal 27, 97–111 (1984)

    Article  MATH  Google Scholar 

  22. Marriott, K., Stuckey, P.: The 3 R’s of Optimizing Constraint Logic Programs: Refinement, Removal, and Reordering. In: 19th. Annual ACM Conf. on Principles of Programming Languages. ACM Press, New York (1992)

    Google Scholar 

  23. Muthukumar, K., Hermenegildo, M.: Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming 13(2/3), 315–347 (1992)

    Article  MATH  Google Scholar 

  24. Naish, L.: A three-valued declarative debugging scheme. In: 8th Workshop on Logic Programming Environments (July 1997). ICLP Post-Conference Workshop

    Google Scholar 

  25. Puebla, G., Bueno, F., Hermenegildo, M.: An Assertion Language for Debugging of Constraint Logic Programs. In: Proceedings of the ILPS 1997 Workshop on Tools and Environments for (Constraint) Logic Programming (October 1997)

    Google Scholar 

  26. Puebla, G., Bueno, F., Hermenegildo, M.: Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs. In: Bossi, A. (ed.) LOPSTR 1999. LNCS, vol. 1817. Springer, Heidelberg (2000) (to appear)

    Chapter  Google Scholar 

  27. Shapiro, E.: Algorithmic Program Debugging. In: ACM Distiguished Dissertation, MIT Press, Cambridge (1982)

    Google Scholar 

  28. Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: an efficient purely declarative logic programming language. JLP 29(1-3) (October 1996)

    Google Scholar 

  29. Van Roy, P., Despain, A.M.: High-Performace Logic Programming with the Aquarius Prolog Compiler. IEEE Computer Magazine, 54–68 (January 1992)

    Google Scholar 

  30. Vetillard, E.: Utilisation de Declarations en Programmation Logique avec Constraintes. PhD thesis, U. of Aix-Marseilles II (1994)

    Google Scholar 

  31. Warren, R., Hermenegildo, M., Debray, S.K.: On the Practicality of Global Flow Analysis of Logic Programs. In: Fifth International Conference and Symposium on Logic Programming, pp. 684–699. MIT Press, Cambridge (1988)

    Google Scholar 

  32. Yardeni, E., Shapiro, E.: A Type System for Logic Programs. Concurrent Prolog: Collected Papers, 211–244 (1987)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Puebla, G., Bueno, F., Hermenegildo, M. (2000). An Assertion Language for Constraint Logic Programs. In: Deransart, P., Hermenegildo, M.V., Małuszynski, J. (eds) Analysis and Visualization Tools for Constraint Programming. Lecture Notes in Computer Science, vol 1870. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722311_2

Download citation

  • DOI: https://doi.org/10.1007/10722311_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41137-6

  • Online ISBN: 978-3-540-40016-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics