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 :
Theses
Complete list of metadatas

Cited literature [105 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-01874620
Contributor : Jean-Christophe Léchenet <>
Submitted on : Thursday, November 29, 2018 - 11:41:48 AM
Last modification on : Saturday, May 4, 2019 - 3:55:00 AM

File

thesis.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : tel-01874620, version 2

Citation

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

Share

Metrics

Record views

215

Files downloads

464