Integrating non-interfering versions of programs (1989)
Cached
Download Links
- [www.cs.odu.edu]
- [www.cs.wisc.edu]
- [www.cs.wisc.edu]
- DBLP
Other Repositories/Bibliography
| Venue: | ACM Transactions on Programming Languages and Systems |
| Citations: | 231 - 23 self |
BibTeX
@ARTICLE{Horwitz89integratingnon-interfering,
author = {Susan Horwitz and Jan Prins and Thomas Reps},
title = {Integrating non-interfering versions of programs},
journal = {ACM Transactions on Programming Languages and Systems},
year = {1989},
volume = {11},
pages = {345--387}
}
Years of Citing Articles
OpenURL
Abstract
The need to integrate several versions of a program into a common one arises frequently, but it is a tedious and time consuming task to integrate programs by hand. To date, the only available tools for assisting with program integration are variants of text-based differential file comparators; these are of limited utility because one has no guarantees about how the program that is the product of an integration behaves compared to the programs that were integrated. This paper concerns the design of a semantics-based tool for automatically integrating program versions. The main contribution of the paper is an algorithm that takes as input three programs A, B, and Base, where A and 8 are two variants of Base. Whenever the changes made to Base to create A and B do not “interfere ” (in a sense defined in the paper), the algorithm produces a program M that integrates A and B. The algorithm is predicated on the assumption that differences in the behavior of the variant programs from that of Base, rather than differences in the text, are significant and must be preserved in M. Although it is undecidable whether a program modification actually leads to such a difference, it is possible to determine a safe approximation by comparing each of the variants with Base. To determine this information, the integration algorithm employs a program representation that is similar (although not identical) to the dependence graphs that have been used







