|
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 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 (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.
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
|
|
| |
2
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
3
|
ALLEN, F. E. AND COCKE, J.A. A catalogue of optimizing transformations. In Deszgn and Optimtzation of Compilers, R. Rustin, Ed. Prentice-Hall, Englewood Cliffs, NJ, 1972, pp. 1-30.
|
 |
4
|
B. Alpern , M. N. Wegman , F. K. Zadeck, Detecting equality of variables in programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-11, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73561]
|
 |
5
|
Karl J. Ottenstein , Robert A. Ballance , Arthur B. MacCabe, The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages, Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, p.257-271, June 1990, White Plains, New York, United States
|
| |
6
|
|
 |
7
|
R. Cytron , J. Ferrante , B. K. Rosen , M. N. Wegman , F. K. Zadeck, An efficient method of computing static single assignment form, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.25-35, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75280]
|
| |
8
|
|
 |
9
|
|
| |
10
|
FEATHER, M.S. Detecting interference when merging specification evolutions. Unpublished report, Information Sciences Inst.. Univ. of Southern California, Marina del Rey. CA, 1989.
|
 |
11
|
|
| |
12
|
HOPCROFT, j.E. An n log n algorithm for minimizing the states of a finite automaton. In The Theory of Machines and Computations, 1971, pp. 189-196.
|
 |
13
|
|
| |
14
|
|
 |
15
|
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]
|
| |
16
|
|
 |
17
|
|
 |
18
|
|
 |
19
|
|
| |
20
|
RAMALINGAM, G. Personal commumcabon 1989
|
| |
21
|
RAMALINGAM, G. AND REPS, T. Semantics of program representation graphs. Tech Rep. 900, Dept. of Computer Sciences, Univ. of Wisconsin, Madison, Dec. 1989.
|
| |
22
|
REPS, T. AND YANG, W. The semantics of program shcing. Tech. Rep. 777, Dept. of Computer Sciences, Univ. of Wisconsin, Madison, June, 1988
|
| |
23
|
|
| |
24
|
|
 |
25
|
B. K. Rosen , M. N. Wegman , F. K. Zadeck, Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-27, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73562]
|
| |
26
|
WEISER, M. Program slicing. IEEE Trans Soflw. Eng. SE-10, 4 (July, 1984), 352-357.
|
| |
27
|
YANG, W., HORWlTZ, S., AND REPS, T Detecting program components w~th equivalent behaviors Tech Rep. 840, Dept of Computer Sciences, Umv. of Wisconsin, Madison, Apr. 1989.
|
 |
28
|
Wuu Yang , Susan Horwitz , Thomas Reps, A program integration algorithm that accommodates semantics-preserving transformations, Proceedings of the fourth ACM SIGSOFT symposium on Software development environments, p.133-143, December 03-05, 1990, Irvine, California, United States
|
| |
29
|
|
CITED BY 10
|
|
Manuvir Das , Thomas Reps , Pascal van Hentenryck, Semantic foundations of binding-time analysis for imperative programs, Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, p.100-110, June 21-23, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
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:
Version control;
Enhancement**
D.2.9
Management
Subjects:
Software configuration management
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Interpreters;
Optimization;
Compilers
General Terms:
Algorithms,
Design
Keywords:
coarsest partition,
control dependence,
data dependence,
data-flow analysis,
flow dependence,
program dependence graph,
program integration,
program representation graph,
static-single-assignment form
REVIEW
"Peter N. van den Bosch : Reviewer"
A program may be developed into two variants—possibly because
it is available on a popular operating system and is enhanced
independently and with different intent at two sites—which do not
interfere in the sense that they expect a
more...
|