ConSUS: A Light-Weight Program Conditioner

Sebastian Danicic, Dave Daoudi, Chris Fox, Mark Harman, Rob Hierons, John Howroyd, Lahcen Ouarbya, Martin Ward

Research output: Contribution to journalArticlepeer-review

12 Citations (Scopus)

Abstract

Program conditioning consists of identifying and removing a set of statements which cannot be executed when a condition of interest holds at some point in a program. It has been applied to problems in maintenance, testing, re-use and re-engineering. All current approaches to program conditioning rely upon both symbolic execution and reasoning about symbolic predicates. The reasoning can be performed by a ‘heavy duty’ theorem prover but this may impose unrealistic performance constraints.

This paper reports on a lightweight approach to theorem proving using the FermaT Simplify decision procedure. This is used as a component to ConSUS, a program conditioning system for the Wide Spectrum Language WSL. The paper describes the symbolic execution algorithm used by ConSUS, which prunes as it conditions.

The paper also provides empirical evidence that conditioning produces a significant reduction in program size and, although exponential in the worst case, the conditioning system has low degree polynomial behaviour in many cases, thereby making it scalable to unit level applications of program conditioning.
Original languageEnglish
Article numberN/A
Pages (from-to)241-262
Number of pages22
JournalJournal of Systems and Software
Volume77
Issue number3
DOIs
Publication statusPublished - Sept 2005

Fingerprint

Dive into the research topics of 'ConSUS: A Light-Weight Program Conditioner'. Together they form a unique fingerprint.

Cite this