Skip to Main content Skip to Navigation

Certified algorithms for program slicing

Abstract : Program slicing is a technique that extracts, given a program and a criterion that is one or several instructions in this program, a simpler program, called a slice, that has the same behavior as the initial program with respect to the criterion. Program analysis techniques focus on establishing the properties of a program. These techniques are costly, and their complexity increases with the size of the program. Therefore, it would be interesting to apply these techniques on slices rather than the initial program, but it requires theoretical foundations to interpret the results obtained on the slices. This thesis provides this justification for runtime error detection. In this context, two questions arise. If an error is detected in the slice, does this mean that it can also be triggered in the initial program? On the contrary, if the slice is proved to be error-free, does this mean that the initial program is error-free too? We model this problem using a small representative imperative language containing errors and non-termination, and establish the link between the semantics of the initial program and of its slice, which allows to give a precise answer to the two questions raised above. To apply these results in a more general context, we focus on the first step towards a language-independent slicer: an algorithm computing control dependence. We formalize an elegant theory of control dependence on arbitrary finite directed graphs taken from the literature and improve the proposed algorithm. To ensure a high confidence in the results, we prove them in the Coq proof assistant or in the Why3 proof plateform.
Document type :
Complete list of metadata

Cited literature [105 references]  Display  Hide  Download
Contributor : Jean-Christophe Léchenet <>
Submitted on : Thursday, November 29, 2018 - 11:41:48 AM
Last modification on : Saturday, May 1, 2021 - 3:48:52 AM


Version validated by the jury (STAR)


  • HAL Id : tel-01874620, version 2


Jean-Christophe Léchenet. Certified algorithms for program slicing. Autre. Université Paris Saclay (COmUE), 2018. Français. ⟨NNT : 2018SACLC056⟩. ⟨tel-01874620v2⟩



Record views


Files downloads