A type-based framework for locating errors in constraint logic programs

University dissertation from Linköping : Linköpings universitet

Abstract: This thesis presents a method for automatic location of type errors in constraint logic programs (CLP) and a prototype debugging tool. The approach is based on techniques of verification and static analysis originating from logic programming, which are substantially extended in the thesis. The main idea is to verify partial correctness of a program with respect to a given specification which is intended to describe (an approximation of) the call-success semantics of the program. This kind of specification, describing calls and successes for every predicate of a program is known as descriptive directional type. For specifying types for CLP programs the thesis extends the formalism of regular discriminative types with constraint-domain-specific base types and with parametric polymorphism. Errors are located by identifying program points that violate verification conditions for a given type specification. The specifications may be developed interactively taking into account the results of static analysis. The main contributions of the thesis are:a verification method for proving partial correctness of CLP programs with respect topolymorphic specifications of the call-success semantics, a specification language for defining parametric regular types, a verification-based method for locating errors in CLP programs, a static analysis method for CLP which is an adaptation and generalization of techniques previously devised for logic programming; its implementation is used in our diagnosis tool for synthesizing draft specifications, an implementation of the prototype diagnosis tool (called TELL). 

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.