scispace - formally typeset
Journal ArticleDOI

Slicing as a program transformation

Reads0
Chats0
TLDR
A novel technique of “encoding” operational semantics within a denotational semantics allows the framework to handle “operational slicing” and enables the concept of slicing to be applied to nondeterministic programs.
Abstract
The aim of this article is to provide a unified mathematical framework for program slicing which places all slicing work for sequential programs on a sound theoretical foundation. The main advantage to a mathematical approach is that it is not tied to a particular representation. In fact the mathematics provides a sound basis for any particular representation. We use the WSL (wide-spectrum language) program transformation theory as our framework. Within this framework we define a new semantic relation, semirefinement, which lies between semantic equivalence and semantic refinement. Combining this semantic relation, a syntactic relation (called reduction), and WSL's remove statement, we can give mathematical definitions for backwards slicing, conditioned slicing, static and dynamic slicing, and semantic slicing as program transformations in the WSL transformation theory. A novel technique of “encoding” operational semantics within a denotational semantics allows the framework to handle “operational slicing”. The theory also enables the concept of slicing to be applied to nondeterministic programs. These transformations are implemented in the industry-strength FermaT transformation system.

read more

Citations
More filters
Journal ArticleDOI

A vocabulary of program slicing-based techniques

TL;DR: This article surveys previous work on program slicing-based techniques and gives rise to a classification of techniques which can help to guide future research directions in this field.
Journal ArticleDOI

Widening and narrowing operators for abstract interpretation

TL;DR: The aim of this paper is to set the ground for a systematic design of widening and narrowing operators, by comparing the different definitions introduced in the literature and by discussing how to tune them in case of domain abstraction and domains' combination through cartesian and reduced products.
Proceedings ArticleDOI

On PDG-based noninterference and its modular proof

TL;DR: This work presents the first machine-checked correctness proof for information flow control (IFC) based on program dependence graphs (PDGs), and instantiate the framework with both a simple while language and Java bytecode, as well as with three different control dependence definitions.
Journal ArticleDOI

State-based model slicing: A survey

TL;DR: A detailed review of existing work on slicing at the level of finite-state-machine-based models focuses on state-based modeling notations because these have received sufficient attention from the slicing community that there is now a coherent body of hitherto unsurveyed work.
Proceedings ArticleDOI

Data dependencies and program slicing: from syntax to abstract semantics

TL;DR: It is claimed that slicing can be defined, and therefore calculated, parametrically on the chosen notion of dependency, which implies a different result when building the program dependency graph.
References
More filters
Journal ArticleDOI

Program Slicing

TL;DR: Program slicing as mentioned in this paper is a method for automatically decomposing programs by analyzing their data flow and control flow. But it is not a technique for finding statement-minimal slices, as it is in general unsolvable, but using data flow analysis is sufficient to find approximate slices.

Program slicing

TL;DR: Applications of program slicing are surveyed, ranging from its first use as a debugging technique to current applications in property verification using finite state models, and a summary of research challenges for the slicing community is discussed.
Journal ArticleDOI

Efficiently computing static single assignment form and the control dependence graph

TL;DR: In this article, the authors present new algorithms that efficiently compute static single assignment forms and control dependence graphs for arbitrary control flow graphs using the concept of {\em dominance frontiers} and give analytical and experimental evidence that these data structures are usually linear in the size of the original program.
Journal ArticleDOI

Interprocedural slicing using dependence graphs

TL;DR: A new kind of graph to represent programs is introduced, called a system dependence graph, which extends previous dependence representations to incorporate collections of procedures (with procedure calls) rather than just monolithic programs.