A program integration algorithm that accommodates semantics-preserving transformations
- 1 October 1990
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 15 (6), 133-143
- https://doi.org/10.1145/99278.99290
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.Keywords
This publication has 11 references indexed in Scilit:
- Integrating noninterfering versions of programsACM Transactions on Programming Languages and Systems, 1989
- An efficient method of computing static single assignment formPublished by Association for Computing Machinery (ACM) ,1989
- Composing recursive logic programs withClausal joinNew Generation Computing, 1988
- Detecting equality of variables in programsPublished by Association for Computing Machinery (ACM) ,1988
- On the adequacy of program dependence graphs for representing programsPublished by Association for Computing Machinery (ACM) ,1988
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- On merging software extensionsActa Informatica, 1986
- The program dependence graph in a software development environmentPublished by Association for Computing Machinery (ACM) ,1984
- Dependence graphs and compiler optimizationsPublished by Association for Computing Machinery (ACM) ,1981
- AN n log n ALGORITHM FOR MINIMIZING STATES IN A FINITE AUTOMATONPublished by Elsevier ,1971