TY - JOUR
T1 - A Program Integration Algorithm that Accommodates Semantics-Preserving Transformations
AU - Yang, Wuu
AU - Horwitz, Susan
AU - Reps, Thomas
PY - 1992/1/7
Y1 - 1992/1/7
N2 - 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 et al.[13]. 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 1992 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.
AB - 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 et al.[13]. 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 1992 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.
KW - coarsest partition
KW - control dependence
KW - data dependence
KW - data-flow analysis
KW - flow dependence
KW - program dependence graph
KW - program integration
KW - program representation graph
KW - static-single-assignment form
UR - http://www.scopus.com/inward/record.url?scp=0026890189&partnerID=8YFLogxK
U2 - 10.1145/131736.131756
DO - 10.1145/131736.131756
M3 - Article
AN - SCOPUS:0026890189
SN - 1049-331X
VL - 1
SP - 310
EP - 354
JO - ACM Transactions on Software Engineering and Methodology (TOSEM)
JF - ACM Transactions on Software Engineering and Methodology (TOSEM)
IS - 3
ER -