MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  CHAPTER 1 PROGRAM INTEGRATION

Download:
Download as a PDF | Download as a PS
unknown authors
http://www.cs.loyola.edu/~binkley/research/../papers/thesis.ps.gz
Add To MetaCart

Abstract:

Program integration concerns the merging process that becomes necessary when a program's source code diverges into multiple variants. A program integration tool takes as input several variants of a base program and after determining the changes in each variant (with respect to the base program), incorporates these changes, along with the portion of base that is preserved in all the variants, into a merged program. In addition to assembling a merged program the integration tool also determines if two modification interfere (the notion of interference is formalized later). In the absence of interference the integration tool must provide guarantees about how the execution behavior of the merged program relates to the execution behaviors of the variants. This dissertation extends previous semantics-based integration tools by considering programs that include procedures and procedure calls. An example of the use of an integration tool is to provide a kind of optimistic concurrency control. In this scheme multiple programmers can update separate copies of a program in parallel without placing restrictions (i.e., locks) on the software modules they are modifying (such restrictions essentially constrain the activities of programmers and hence reduce their productivity). For example, consider a compiler being upgraded by two programmers: the first is specializing the code generator to produce code for a particular architecture and the second is implementing a new register allocation scheme. Knowing that they have a

Citations

908 Program slicing – Weiser - 1984
672 The program dependence graph and its use in optimization – Ferrante, Ottenstein, et al. - 1987
519 Interprocedural slicing using dependence graphs – Horwitz, Reps, et al. - 1990
383 Semantics of context-free languages – Knuth - 1968
234 The Program Dependence Graph in a Software Development – Ottenstein, Ottenstein
218 Dependence graphs and compiler optimizations – Kuck, Kuhn, et al. - 1981
215 Intergrating Noninterfering Version of Programs – Horwitz, Reps, et al. - 1989
188 The Synthesizer Generator: A System for Constructing Language-Based Editors – Reps, Teitelbaum - 1988
129 Dependence analysis for pointer variables – HORWITZ, PFEIFFER, et al.
120 An efficient way to find the side effects of procedure calls and the aliases of variables – Banning - 1979
110 A precise interprocedural data flow algorithm – Myers - 1981
104 Complexity of interprocedural side-effect analysis – Cooper, Kennedy - 1987
92 The program summary graph and flow-sensitive interprocedural data flow analysis – Callahan - 1988
76 The Denotational Description of Programming Languages – Gordon - 1979
76 Ordered Attribute Grammars – Kastens - 1980
74 On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting Speedup – Kuck, Muraoka, et al. - 1972
52 On the adequacy of program dependence graphs for representing programs – HORWITZ, PRINS, et al. - 1988
42 Program integration for languages with procedure calls – BINKLEY, HORWITZ, et al. - 1995
42 The semantics of program slicing – REPS, YANG - 1988
31 The semantics of program slicing and program integration – REPS, YANG
27 Finding program slices for recursive procedures – Hwang, Du, et al. - 1988
22 Experiments on slicing-based debugging tools – Lyle, Weiser - 1986
18 Illustrating interference in interfering versions of programs – Reps, Bricker - 1989
15 Algebraic properties of program integration – Reps - 1991
14 The method of attributes for data flow analysis – Babich, Jazayeri - 1978
14 Minimizing communication for synchronizing parallel dataflow programs – Badger, Weiser - 1988
14 Reconstructing sequential behavior from parallel behavior projections – Weiser - 1983
12 On live-dead analysis for global data flow problems – Kou - 1977
8 Correctness of an algorithm for reconstituting a program from a dependence graph – BALL, HORWITZ, et al. - 1989
6 private communication – Ball - 1996
6 Dependence-based representations for programs with reference variables – Pfeiffer - 1991
5 private communication – Bates - 1988
4 The multi-procedure equivalence theorem – Binkley, Horwitz, et al. - 1989
4 A theory of program modifications – Ramalingam, Reps - 1990