Results 1  10
of
13
A Survey of Program Slicing Techniques
 JOURNAL OF PROGRAMMING LANGUAGES
, 1995
"... A program slice consists of the parts of a program that (potentially) affect the values computed at some point of interest, referred to as a slicing criterion. The task of computing program slices is called program slicing. The original definition of a program slice was presented by Weiser in 197 ..."
Abstract

Cited by 632 (10 self)
 Add to MetaCart
A program slice consists of the parts of a program that (potentially) affect the values computed at some point of interest, referred to as a slicing criterion. The task of computing program slices is called program slicing. The original definition of a program slice was presented by Weiser in 1979. Since then, various slightly different notions of program slices have been proposed, as well as a number of methods to compute them. An important distinction is that between a static and a dynamic slice. The former notion is computed without making assumptions regarding a program's input, whereas the latter relies on some specific test case. Procedures, arbitrary control flow, composite datatypes and pointers, and interprocess communication each require a specific solution. We classify static and dynamic slicing methods for each of these features, and compare their accuracy and efficiency. Moreover, the possibilities for combining solutions for different features are investigated....
Program slicing
"... Program slicing is a decomposition technique that elides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original program’s semantics. Using examples coup ..."
Abstract

Cited by 124 (22 self)
 Add to MetaCart
Program slicing is a decomposition technique that elides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original program’s semantics. Using examples coupled with fundamental principles, a tutorial introduction to program slicing is presented. Then 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. Finally, a summary of research challenges for the slicing community is discussed.
The Use of Program Dependence Graphs in Software Engineering
, 1992
"... This paper describes a languageindependent program representationthe program dependence graph—and &mCusses how program dependence graphs, together with operations such as program slicing, can provide the basis for powerfid programming tools that address important softwareengineering problems, suc ..."
Abstract

Cited by 101 (2 self)
 Add to MetaCart
This paper describes a languageindependent program representationthe program dependence graph—and &mCusses how program dependence graphs, together with operations such as program slicing, can provide the basis for powerfid programming tools that address important softwareengineering problems, such as understanding what an existing program does and how it works, understanding the differences between several versions of a program, and creating new programs by combining pieces of old programs. The paper primarily surveys work in this mea that has been czried out at the University of Wisconsin during the past five years.
Efficient Comparison of Program Slices
 ACTA INFORMATICA
, 1991
"... ... This paper presents a lineartime algorithm for determining whether two slices of a program dependence graph are isomorphic. ..."
Abstract

Cited by 20 (7 self)
 Add to MetaCart
... This paper presents a lineartime algorithm for determining whether two slices of a program dependence graph are isomorphic.
NonStandard Semantics for Program Slicing
 Special issue on Partial Evalution and SemanticsBased Program Manipulation
, 2003
"... In this paper we generalize the notion of compositional semantics to cope with trans nite reductions of a transition system. Standard denotational and predicate transformer semantics, even though compositional, provide inadequate models for some known program manipulation techniques. We are interes ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
In this paper we generalize the notion of compositional semantics to cope with trans nite reductions of a transition system. Standard denotational and predicate transformer semantics, even though compositional, provide inadequate models for some known program manipulation techniques. We are interested in the systematic design of extended compositional semantics, observing possible trans  nite computations, i.e. computations that may occur after a given number of in nite loops. This generalization is necessary to deal with program manipulation techniques modifying the termination status of programs, such as program slicing. We include the trans nite generalization of semantics in the hierarchy developed in 1997 by P. Cousot, where semantics at dierent levels of abstraction are related with each other by abstract interpretation. We prove that a specular hierarchy of nonstandard semantics modeling trans nite computations of programs can be speci ed in such a way that the standard hierarchy can be derived by abstract interpretation. We prove that nonstandard trans nite denotational and predicate transformer semantics can be both systematically derived as solutions of simple abstract domain equations involving the basic operation of reduced power of abstract domains. This allows us to prove the optimality of these semantics, i.e. they are the most abstract semantics in the hierarchy which are compositional and observe respectively the terminating and initial states of trans nite computations, providing an adequate mathematical model for program manipulation.
Graph Theoretic Foundations of Program Slicing and Integration
, 1993
"... This paper generalizes program slicing algorithms originally defined over representations of programs to operate over directed graphs. Doing so provides a uniform framework to model Weiser's and Ottenstein & Ottenstein's approaches to program slicing as abstract mathematical operations transparent o ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
This paper generalizes program slicing algorithms originally defined over representations of programs to operate over directed graphs. Doing so provides a uniform framework to model Weiser's and Ottenstein & Ottenstein's approaches to program slicing as abstract mathematical operations transparent of any concerns of a program's structure or its semantics. This transparency helps us in a) deriving calculational style proofs of algebraic properties of slices, b) making more general assertions about these properties than those previously established, and c) generalizing Weiser's slicing criterion to allow union of statements. The two program integration algorithms due to Reps and Horwitz, Prins, & Reps use program slicing as an elementary operation and are generalized to integrate directed graphs. These algorithms can therefore be used to integrate versions of any artifact that may be represented as graphs, for instance versions of specification and design of software systems. 2
Data Dependencies and Program Slicing: from Syntax to Abstract Semantics
, 2008
"... We discuss the relation between program slicing and data dependencies. We claim 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. In this framework, it is possible to ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
We discuss the relation between program slicing and data dependencies. We claim 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. In this framework, it is possible to choose dependency in the syntactic or semantic sense, thus leading to compute possibly different, smaller slices. Moreover, the notion of abstract dependency, based on properties instead of exact data values, is investigated in its theoretical meaning. Constructive ideas are given to compute abstract dependencies on expressions, and to transform properties in order to rule out some dependencies. The application of these ideas to information flow is also discussed.
A Calculus of Program Adaptation and Its Applications
 Science of Computer Programming
, 1998
"... Traditional programming calculi focus on transforming a specification into a program. With the advent of such recent paradigms as white box reuse, componentbased software development, and reengineering, and with the continued predominance of software maintenance, less and less software engineering ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Traditional programming calculi focus on transforming a specification into a program. With the advent of such recent paradigms as white box reuse, componentbased software development, and reengineering, and with the continued predominance of software maintenance, less and less software engineering activity nowadays deals with straightforward development. More and more, software products are derived by incrementing, composing, merging, or otherwise modifying existing components. In this paper we present a calculus that models these paradigms. Keywords Formal specifications, Programming calculi, Program construction, Software merging, Software incrementation, Software modification. 1 Program Adaptation: An Emerging Paradigm Traditional programming paradigms revolve around mapping a single requirements specification into a program. As less and less software is developed from scratch, and more and more is developed from existing software artifacts, this traditional paradigm is growing l...
Experiment Management Support for Parallel Performance Tuning
 UNIVERSITY OF WISCONSIN  MADISON
, 1999
"... ..."