MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  A program integration algorithm that accommodates semantics-preserving transformations (1992) [37 citations — 3 self]

Download:
pdf | ps
by Wuu Yang, Susan Horwitz, Thomas Reps
ACM Transactions on Software Engineering and Methodology
http://www.cs.wisc.edu/wpis/papers/tosem92.ps
Add To MetaCart

Abstract:

Given a program Base and two variants, A and B, each created by modifying separate copies of Base, the goal of program integration is to determine whether the modifications interfere, and if they do not, to create an integrated program that includes both sets of changes as well as the portions of Base preserved in both variants. Text-based integration techniques, such as the one used by the UNIX diff3 utility, are obviously unsatisfactory because one has no guarantees about how the execution behavior of the integrated program relates to the behaviors of Base, A, and B. The first program-integration algorithm to provide such guarantees was developed by Horwitz, Prins, and Reps. However, a limitation of that algorithm is that it incorporates no notion of semantics-preserving transformations. This limitation causes the algorithm to be overly conservative in its definition of interference. For example, if one variant changes the way a computation is performed (without changing the values computed) while the other variant adds code that uses the result of the computation, the algorithm would classify those changes as interfering. This paper describes a new integration algorithm that is able to accommodate semantics-preserving transformations.

Citations

2005 The Design and Analysis of Computer Algorithms – Aho, Hopcroft, et al. - 1974
672 The program dependence graph and its use in optimization – Ferrante, Ottenstein, et al. - 1987
234 The Program Dependence Graph in a Software Development – Ottenstein, Ottenstein
218 Dependence graphs and compiler optimizations – Kuck, Kuhn, et al. - 1981
215 Intergrating Noninterfering Version of Programs – Horwitz, Reps, et al. - 1989
188 An efficient method of computing static single assignment form – CYTRON, FERRANTE, et al. - 1989
187 Detecting equality of variables in programs – Alpern, Wegman, et al. - 1988
169 An n log n algorithm for minimizing states in a finite automaton – Hopcroft - 1976
138 Fast decision procedures based on congruence closure – Nelson, Oppen - 1980
93 A catalogue of optimizing transformations – ALLEN, COCKE - 1972
84 Variations on the common subexpression problem – Downey, Sethi, et al. - 1980
42 Program improvement by source-to-source transformation – Loveman - 1977
42 The semantics of program slicing – REPS, YANG - 1988
31 The semantics of program slicing and program integration – REPS, YANG
19 Composing recursive logic programs with clausal join – Lakhotia, Sterling - 1988
17 Efficient comparison of program slices – Horwitz, Reps - 1991
14 On merging software extensions – BERZINS - 1986
11 Detecting Interference when Merging Specification Evolutions – Feather - 1989
3 On the suitability of dependence graphs for representing programs – HORWITZ, PRINS, et al. - 1988