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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
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)
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)
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)
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)
Cordes, D., Brown, M.: The Literate Programming Paradigm. IEEE Computer Magazine (June 1991)
Cousot, P.: Types as Abstract Interpretations. In: Symposium on Principles of Programming Languages, pp. 316–331. ACM Press, New York (1997)
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)
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)
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)
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)
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
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)
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)
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)
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)
Hill, P., Lloyd, J.: The Goedel Programming Language. MIT Press, Cambridge (1994)
Jaffar, J., Maher, M.J.: Constraint Logic Programming: A Survey. Journal of Logic Programming 19/20, 503–581 (1994)
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)
Knuth, D.: Literate programming. Computer Journal 27, 97–111 (1984)
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)
Muthukumar, K., Hermenegildo, M.: Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming 13(2/3), 315–347 (1992)
Naish, L.: A three-valued declarative debugging scheme. In: 8th Workshop on Logic Programming Environments (July 1997). ICLP Post-Conference Workshop
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)
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)
Shapiro, E.: Algorithmic Program Debugging. In: ACM Distiguished Dissertation, MIT Press, Cambridge (1982)
Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: an efficient purely declarative logic programming language. JLP 29(1-3) (October 1996)
Van Roy, P., Despain, A.M.: High-Performace Logic Programming with the Aquarius Prolog Compiler. IEEE Computer Magazine, 54–68 (January 1992)
Vetillard, E.: Utilisation de Declarations en Programmation Logique avec Constraintes. PhD thesis, U. of Aix-Marseilles II (1994)
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)
Yardeni, E., Shapiro, E.: A Type System for Logic Programs. Concurrent Prolog: Collected Papers, 211–244 (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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