ACM Home Page
Please provide us with feedback. Feedback
Program integration for languages with procedure calls
Full text PdfPdf (2.35 MB)
Source ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 4 ,  Issue 1  (January 1995) table of contents
Pages: 3 - 35  
Year of Publication: 1995
ISSN:1049-331X
Authors
David Binkley  Loyola College, Baltimore, MD
Susan Horwitz  Univ. of Wisconsin, Madison
Thomas Reps  Univ. of Wisconsin, Madison
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 40,   Citation Count: 23
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/201055.201056
What is a DOI?

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
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


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...

Collaborative Colleagues:
David Binkley: colleagues
Susan Horwitz: colleagues
Thomas Reps: colleagues