2008
DOI: 10.1016/j.ipl.2007.10.002
|View full text |Cite
|
Sign up to set email alerts
|

Slicing for modern program structures: a theory for eliminating irrelevant loops

Abstract: Slicing is a program transformation technique with numerous applications, as it allows the user to focus on the parts of a program that are relevant for a given purpose. Ideally, the slice program should have the same termination properties as the original program, but to keep the slices manageable, it might be preferable to slice away loops that do not affect the values of relevant variables. This paper provides the first theoretical foundation to reason about nontermination insensitive slicing without assumi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
55
0
1

Year Published

2010
2010
2024
2024

Publication Types

Select...
6
1
1

Relationship

1
7

Authors

Journals

citations
Cited by 25 publications
(57 citation statements)
references
References 8 publications
1
55
0
1
Order By: Relevance
“…We only prove in Coq the previous slice builder function (introduced in Figure 7) and develop a verified validation algorithm that given a slicing criterion checks the result (SL , NObs , DObs ) and then use it with slice builder to transform the input program. Amtoft [2] and Ranganath et al [23] describe a pen-and-paper proof of correctness for program slicing based on the notions of relevant variables. Our validation algorithm uses this information as an extra hint for a faster validation.…”
Section: Validation Of Slicesmentioning
confidence: 99%
See 1 more Smart Citation
“…We only prove in Coq the previous slice builder function (introduced in Figure 7) and develop a verified validation algorithm that given a slicing criterion checks the result (SL , NObs , DObs ) and then use it with slice builder to transform the input program. Amtoft [2] and Ranganath et al [23] describe a pen-and-paper proof of correctness for program slicing based on the notions of relevant variables. Our validation algorithm uses this information as an extra hint for a faster validation.…”
Section: Validation Of Slicesmentioning
confidence: 99%
“…Program slicers that construct executable slices in the presence of jump statements implement delicate and error-prone graph algorithms. A few paper-andpencil proofs related to the correctness of program slicing exist in the literature [24,23,2]. The key ingredients to these proofs are presented in [23,2], where the authors define the notions of relevant variables and specific vertices called next observable vertices that are used only in the proof.…”
Section: Introductionmentioning
confidence: 99%
“…Let us note that this property is not obvious. There are slicing algorithms [20] that transform terminating programs into diverging programs, thus program slicing does not always preserve the termination of programs.…”
Section: [Coq Proof]mentioning
confidence: 99%
“…Ranganath, Amtoft et al [18,20] developed paper-and-pencil proofs of program slicing, introducing the notion of observable vertices. Their main concern is to deal with generalized programs, having several or no end nodes.…”
Section: Related Workmentioning
confidence: 99%
“…Except for WOD [1] and NTSCD [19] that apply to arbitrary CFGs, all other definitions of control dependence for programs require CFGs to have a unique end node.…”
Section: Related Workmentioning
confidence: 99%