Static and Dynamic Slicing of Constraint Logic Programs
2002 (English)In: Automated Software Engineering: An International Journal, ISSN 0928-8910, E-ISSN 1573-7535, Vol. 9, no 1, 41-65 p.Article in journal (Refereed) Published
Slicing is a program analysis technique originally developed for imperative languages. It facilitates understanding of data flow and debugging.
This paper discusses slicing of Constraint Logic Programs. Constraint Logic Programming (CLP) is an emerging software technology with a growing number of applications. Data flow in constraint programs is not explicit, and for this reason the concepts of slice and the slicing techniques of imperative languages are not directly applicable.
This paper formulates declarative notions of slice suitable for CLP. They provide a basis for defining slicing techniques (both dynamic and static) based on variable sharing. The techniques are further extended by using groundness information.
A prototype dynamic slicer of CLP programs implementing the presented ideas is briefly described together with the results of some slicing experiments.
Place, publisher, year, edition, pages
2002. Vol. 9, no 1, 41-65 p.
Logic Programming (LP) - Constraint Logic Programming (CLP) - program analysis - debugging - slicing
Engineering and Technology
IdentifiersURN: urn:nbn:se:liu:diva-61033DOI: 10.1023/A:1013280119003OAI: oai:DiVA.org:liu-61033DiVA: diva2:360347