Results 1 - 10
of
11
Amorphous Program Slicing
- Software Focus
, 1997
"... Traditional, syntax-preserving program slicing simpli es a program by deleting components (e.g., statements and predicates) that do not aect a computation of interest. Amorphous slicing removes the limitation to component deletion as the only means of simpli cation, while retaining the semantic p ..."
Abstract
-
Cited by 105 (51 self)
- Add to MetaCart
Traditional, syntax-preserving program slicing simpli es a program by deleting components (e.g., statements and predicates) that do not aect a computation of interest. Amorphous slicing removes the limitation to component deletion as the only means of simpli cation, while retaining the semantic property that a slice preserves the selected behaviour of interest from the original program. This leads to slices which are often considerably smaller than their syntax-preserving counterparts.
A Search-Based Automated Test-Data Generation Framework for Safety Critical Software
, 2000
"... Software ..."
A New Algorithm for Slicing Unstructured Programs
, 1998
"... This paper introduces a modification of Agrawal's algorithm for slicing unstructured programs, which overcomes these difficulties. The new algorithm produces thinner slices than any previously published algorithm while respecting both the semantic and syntactic constraints of slicing. c fl1998 by Jo ..."
Abstract
-
Cited by 15 (7 self)
- Add to MetaCart
This paper introduces a modification of Agrawal's algorithm for slicing unstructured programs, which overcomes these difficulties. The new algorithm produces thinner slices than any previously published algorithm while respecting both the semantic and syntactic constraints of slicing. c fl1998 by John Wiley & Sons, Ltd.
Analysis of Dynamic Memory Access using Amorphous Slicing
- In IEEE International Conference on Software Maintenance (ICSM'98
, 1998
"... Problems associated with understanding, verifying and reengineering the way in which a system allocates and releases dynamic memory present significant challenges to the software maintainer. Because the questions underlying these problems are undecidable, no system can provide a completely fail safe ..."
Abstract
-
Cited by 12 (10 self)
- Add to MetaCart
Problems associated with understanding, verifying and reengineering the way in which a system allocates and releases dynamic memory present significant challenges to the software maintainer. Because the questions underlying these problems are undecidable, no system can provide a completely fail safe certification. For example, in checking for memory leaks, a system can only warn of potential problems, but cannot guarantee that no leaks remain. We present an approach to modelling the dynamic memory access properties of a program using amorphous program slicing to create a Dynamic Memory Model (DMM). The slices are constructed from a transformed version of the original program in which heap access has been made explicit using a pseudo variable to denote the top of the heap. The DMM is a simplified version of the original program which is concerned solely with the dynamic memory access behaviour of the original. We illustrate the use of DMMs in problems of comprehension, verification and...
Program transformations for information personalization
, 2004
"... Personalization constitutes the mechanisms necessary to automatically customize information content, structure, and presentation to the end-user to reduce information overload. Unlike traditional approaches to personalization, the central theme of our approach is to model a website as a program and ..."
Abstract
-
Cited by 7 (6 self)
- Add to MetaCart
Personalization constitutes the mechanisms necessary to automatically customize information content, structure, and presentation to the end-user to reduce information overload. Unlike traditional approaches to personalization, the central theme of our approach is to model a website as a program and conduct website transformation for personalization by program transformation (e.g., partial evaluation, program slicing). The goal of this paper is study personalization through a program transformation lens, and develop a formal model, based on program transformations, for personalized interaction with hierarchical hypermedia. The specific research issues addressed involve identifying and developing program representations and transformations suitable for classes of hierarchical hypermedia, and providing supplemental interactions for improving the personalized experience. The primary form of personalization discussed is out-of-turn interaction – a technique which empowers a user navigating a hierarchical website to postpone clicking on any of the hyperlinks presented on the current page and, instead, communicate the
VADA: A transformation-based system for variable dependence analysis
- In IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002
, 2002
"... Abstract Variable dependence is an analysis problem in whichthe aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediateprogram variables. This paper shows the relationship between the vari-able dependence analysis problem and slicing and descr ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Abstract Variable dependence is an analysis problem in whichthe aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediateprogram variables. This paper shows the relationship between the vari-able dependence analysis problem and slicing and describes VADA, a system that implements variable depen-dence analysis. In order to cover the full range of C constructs andfeatures, a transformation to a core language is employed. Thus, the full analysis is required only for thecore language, which is relatively simple. This reduces the overall effort required for dependency analysis. Thetransformations used need preserve only the variable dependence relation, and therefore need not be meaningpreserving in the traditional sense. The paper describes how this relaxed meaning further simplifies the transfor-mation phase of the approach. Finally, the results of an empirical study into the performance of the system arepresented. 1
Empirical Study of Optimization Techniques for Massive Slicing
, 2007
"... This paper presents results from a study of techniques that improve the performance of graphbased interprocedural slicing of the System Dependence Graph (SDG). This is useful in “massive slicing ” where slices are required for many or all of the possible set of slicing criteria. Several different te ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
This paper presents results from a study of techniques that improve the performance of graphbased interprocedural slicing of the System Dependence Graph (SDG). This is useful in “massive slicing ” where slices are required for many or all of the possible set of slicing criteria. Several different techniques are considered, including forming strongly connected components, topological sorting, and removing transitive edges. Data collected from a test bed of just over 1,000,000 lines of code are presented. This data illustrates the impact on computation time of the techniques. Together, the best combination produces a 71 % reduction in run-time (and a 64 % reduction in memory usage). The complete set of techniques also illustrates the point at which faster computation is not viable due to prohibitive preprocessing costs.
Program Simplification as a Means of Approximating Undecidable Propositions
, 1999
"... We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension activity. Our philosophy is that such hypotheses (which are typically undecidable) can, in some sense, be `a ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
We describe an approach which mixes testing, slicing, transformation and formal verication to investigate speculative hypotheses concerning a program, formulated during program comprehension activity. Our philosophy is that such hypotheses (which are typically undecidable) can, in some sense, be `answered ' by a partly automated system which returns neither `true' nor `false', but a program (the `test program') which computes the answer. The motivation for this philosophy is the way in which, as we demonstrate, static analysis and manipulation technology can be applied to ensure that the resulting test program is signicantly simpler than the original program, thereby simplifying the process of investigating the original hypothesis. 1 Introduction Often the task of legacy system, source code comprehension begins with a series of questions about properties for the system. These questions represent speculative hypotheses about the supposed behaviour of the system. Ideally it would ...
Animated Visualisation of Static Analysis: Characterising, Explaining and Exploiting the Approximate Nature of Static Analysis
"... This paper addresses the question: "How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper addresses the question: "How can animated visualisation be used to express interesting properties of static analysis?" The particular focus is upon static dependence analysis, but the approach adopted in the paper is applicable to other forms of static analysis. The challenge is twofold. First, there is the inherent difficultly of using animation, which is inherently dynamic, as a representation of static analysis, which is not. The paper shows one way in which this apparent contradiction can be overcome. Second, there is the harder challenge of ensuring that the animations so-produced correspond to features of genuine interest in the source code that are hard to visualize without animation.
The Next 700 Slicing Criteria
, 1996
"... A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, captu ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
A slice is constructed by deleting statements from a program whilst preserving some projection of its semantics. Since Mark Weiser introduced program slicing in 1979, a wide variety of slicing paradigms have been proposed, each of which is based upon a new formulation of the slicing criterion, capturing the semantic projection to be preserved during the process of command deletion. This paper surveys these slicing criteria, attempting to establish a set of parameters which combine to form a slicing criterion. The effort to abstract a general set of parameters for slicing criteria highlights the existence of many new possibilities for slicing, corresponding to, as yet unpublished, criteria. Many of these novel slicing criteria may find applications in program comprehension and analysis. The paper introduces no new algorithms for constructing slices, rather it introduces new criteria with respect to which slices might usefully be constructed. The paper also goes some way towards a unific...

