A generic preprocessor for program validation and debugging

Puebla Sánchez, Alvaro Germán; Bueno Carrillo, Francisco y Hermenegildo, Manuel V. (2000). A generic preprocessor for program validation and debugging. En: "Analysis and Visualization Tools for Constraint Programming". Lecture Notes in Computer Science (1870). Springer Berlin Heidelberg, pp. 63-107. ISBN 9783540411376. https://doi.org/10.1007/10722311_3.


Título: A generic preprocessor for program validation and debugging
  • Puebla Sánchez, Alvaro Germán
  • Bueno Carrillo, Francisco
  • Hermenegildo, Manuel V.
  • Deransart, Pierre
  • Hermenegildo Salinas, Manuel Vicente
  • Małuszynski, Jan
Tipo de Documento: Sección de Libro
Título del Libro: Analysis and Visualization Tools for Constraint Programming
Fecha: Septiembre 2000
ISBN: 9783540411376
Escuela: Facultad de Informática (UPM) [antigua denominación]
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img] PDF (Document Portable Format) - Acceso permitido solamente a usuarios en el campus de la UPM - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (2MB)


We present a generic preprocessor for combined static/dynamic validation and debugging of constraint logic programs. Passing programs through the preprocessor prior to execution allows detecting many bugs automatically. This is achieved by performing a repertoire of tests which range from simple syntactic checks to much more advanced checks based on static analysis of the program. Together with the program, the user may provide a series of assertions which trigger further automatic checking of the program. Such assertions are written using the assertion language presented in Chapter 2, which allows expressing a wide variety of properties. These properties extend beyond the predefined set which may be understandable by the available static analyzers and include properties defined by means of user programs. In addition to user-provided assertions, in each particular CLP system assertions may be available for predefined system predicates. Checking of both user-provided assertions and assertions for system predicates is attempted first at compile-time by comparing them with the results of static analysis. This may allow statically proving that the assertions hold (Le., they are validated) or that they are violated (and thus bugs detected). User-provided assertions (or parts of assertions) which cannot be statically proved ñor disproved are optionally translated into run-time tests. The implementation of the preprocessor is generic in that it can be easily customized to different CLP systems and dialects and in that it is designed to allow the integration of additional analyses in a simple way. We also report on two tools which are instances of the generic preprocessor: CiaoPP (for the Ciao Prolog system) and CHIPRE (for the CHIP CLP(FL>) system). The currently existing analyses include types, modes, non-failure, determinacy, and computational cost, and can treat modules separately, performing incremental analysis.

Más información

ID de Registro: 14565
Identificador DC: http://oa.upm.es/14565/
Identificador OAI: oai:oa.upm.es:14565
Identificador DOI: 10.1007/10722311_3
URL Oficial: http://link.springer.com/chapter/10.1007%2F10722311_3
Depositado por: Biblioteca Facultad de Informatica
Depositado el: 28 Feb 2013 09:19
Ultima Modificación: 22 Sep 2014 11:04
  • GEO_UP4
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • InvestigaM
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM