|
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 incorporates 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 only applied to programs written in a restricted language—in particular, the algorithm does not handle programs with procedures. This article describes a generalization of the Horwitz-Prins-Reps algorithm that handles programs that consist of multiple (and possibly mutually recursive) procedures.We show that two straightforward generalizations of the Horwitz-Prins-Reps algorithm yield unsatisfactory results. The key issue in developing a satisfactory algorithm is how to take into account different calling contexts when determining what has changed in the variants A and B. Our solution to this problem involves identifying two different kinds of affected components of A and B: those affected regardless of how the procedure is called, and those affected by a changed or new calling context. The algorithm makes use of interprocedural program slicing to identify these components, as well as components in Base, A, and B with the same behavior.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
~BALL~ T., HORWITZ, S, AND REPS, T. 1990. Correctness of an algorithm for reconstituting a ~program from a depend~nce graph. TR-947, Computer Sciences Dept., Univ. of Wisconsin, ~Madison, Wisc.
|
| |
2
|
|
| |
3
|
~BINKLEY, D., HORWITZ, S.~ AND REPS, T. 1995. The theory of multi-procedure integration. Tech. ~Rep., Computer Sciences Dept., Univ of Wisconsin, Madison, Wisc. In preparation.
|
 |
4
|
|
| |
5
|
~DONZEAU-GOUGE, V., HUET, G., KAH~, G, ANn LANG, B. 1984. Programming environments ~based on structured editors: The MENTOR experience. In Interactwe Programming Environ- ~Ments, D. Barstow, E. Sandewall, and H. Shrobe, Eds. McGraw-Hfil, New York, 128 140.
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
D. J. Kuck , R. H. Kuhn , D. A. Padua , B. Leasure , M. Wolfe, Dependence graphs and compiler optimizations, Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.207-218, January 26-28, 1981, Williamsburg, Virginia
[doi> 10.1145/567532.567555]
|
 |
10
|
|
| |
11
|
~NOTKIN, D., ELLISON, R. J., STAUDT, B. J., KAISER, G. E., KANT, E., HABERMAN, A. N., AMBRIOLA, V., ~AND MONTANGERO, C. 1985. Special issue on the GANDALF project. J. Syst. Softw. 5, 2 ~(May).
|
 |
12
|
|
| |
13
|
~REps, T. 1989. Demonstration of a prototype tool for program integration. TR-819, Computer ~Sciences Dept., Univ. of Wisconsin, Madison, Wisc.
|
| |
14
|
~REPS, T. 1993. The Wisconsin program-integration system reference manual: Release 2.0. ~Unpublished Report, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wisc.
|
 |
15
|
|
| |
16
|
|
| |
17
|
~REPS, T. AND YANa, W. 1988. The semantics of program slicing. TR-777, Computer Sciences ~Dept., Univ. of Wisconsin, Madison, Wisc.
|
| |
18
|
~REPS, T., SAGIV., M., AND HORWITZ, S. 1994. Interprocedural datafiow analysis via graph ~reachability. Tech. Rep. TR 94-14, Datalogisk Institut, Univ. of Coopenhagen, Denmark.
|
| |
19
|
~RICE, H.G. 1953. Classes of recursively enumerable sets and their decision problems. Trans. ~AMS 89, 25 59. As cited in Hopcroft and Ullman, Introduction to Automata Theory, Lan- ~guages, and Computation. Addison-Wesley, Reading, Mass. 1979.
|
| |
20
|
~SHARIR, M. AND PNUELI, A. 1981. Two approaches to interprocedural data flow analysis. In ~Program Flow Analysts: Theory and Applications, S. S. Muchnick and N. D. Jones, Eds. ~Prentice-Hall, Englewood Cliffs, N.J.
|
| |
21
|
~WEISER, M. 1984. Program slicing. IEEE Trans. Softw. Eng. SE-IO, 4 (July), 352-357.
|
| |
22
|
|
CITED BY 23
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael R. Laurence , Sebastian Danicic , Mark Harman , Rob Hierons , John Howroyd, Equivalence of conservative, free, linear program schemas is decidable, Theoretical Computer Science, v.290 n.1, p.831-862, 1 January 2003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebastian Danicic , Mohammed Daoudi , Chris Fox , Mark Harman , Robert M. Hierons , John R. Howroyd , Lahcen Ourabya , Martin Ward, ConSUS: a light-weight program conditioner, Journal of Systems and Software, v.77 n.3, p.241-262, September 2005
|
|
|
|
|
|
|
|
|
Dave Binkley , Sebastian Danicic , Tibor Gyimóthy , Mark Harman , Ákos Kiss , Bogdan Korel, Theoretical foundations of dynamic program slicing, Theoretical Computer Science, v.360 n.1, p.23-41, 21 August 2006
|
|
|
Dave Binkley , Sebastian Danicic , Tibor Gyimóthy , Mark Harman , Ákos Kiss , Bogdan Korel, A formalisation of the relationship between forms of program slicing, Science of Computer Programming, v.62 n.3, p.228-252, 15 October 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Version control
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.2
Design Tools and Techniques
Subjects:
Programmer workbench**
D.2.3
Coding Tools and Techniques
Subjects:
Program editors
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Compilers
General Terms:
Algorithms,
Design,
Languages,
Theory
Keywords:
control dependence,
data dependence,
data-flow analysis,
flow-insensitive summary information,
program dependence graph,
program slicing,
semantics-based program integration
REVIEW
"Mark Edward Staknis : Reviewer"
When two or more programmers independently change a program's
source code, the changes should be merged only if the program's intended
behavior is preserved. Source code control systems vary in the degree to
which they can identify potentially
more...
|