## Algebraic properties of program integration (1991)

### Cached

### Download Links

- [www.cs.wisc.edu]
- [research.cs.wisc.edu]
- [www.cs.wisc.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Science of Computer Programming |

Citations: | 20 - 4 self |

### BibTeX

@ARTICLE{Reps91algebraicproperties,

author = {Thomas Reps},

title = {Algebraic properties of program integration},

journal = {Science of Computer Programming},

year = {1991},

volume = {17},

pages = {139--215}

}

### Years of Citing Articles

### OpenURL

### Abstract

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 merge programs by hand. The program-integration algorithm proposed by Horwitz, Prins, and Reps provides a way to create a semantics-based tool for integrating a base program with two or more variants. The integration algorithm is based on the assumption that any change in the behavior, rather than the text, of a program variant is significant and must be incorporated in the merged program. An integration system based on this algorithm will determine whether the variants incorporate interfering changes, and, if they do not, create an integrated program that includes all changes as well as all features of the base program that are preserved in all variants. To determine this information, the algorithm employs a program representation that is similar to the program dependence graphs that have been used previously in vectorizing and parallelizing compilers. This paper studies the algebraic properties of the program-integration operation, such as whether there are laws of associativity and distributivity. (For example, in this context associativity means: “If three variants of a given base are to be integrated by a pair of two-variant integrations, the same result is produced no matter which two variants are integrated first.”) To answer such questions, we reformulate the Horwitz-Prins-Reps integration algorithm as an operation in a Brouwerian algebra constructed from sets of dependence graphs. (A Brouwerian algebra is a distributive lattice with an operation a. − b characterized by a. ¡ ¢

### Citations

936 | A theory of type polymorphism in progra.mming - Milner - 1978 |

825 | The program dependence graph and its use in optimization
- Ferrante, Ottenstein, et al.
- 1987
(Show Context)
Citation Context ...termine this information, the HPR algorithm employs a program representation that is similar to the program dependence graphs that have been used previously in vectorizing and parallelizing compilers =-=[5, 14]-=-. It makes use of an operation on these graphs called program slicing [19, 28] to find potentially changed computations. The HPR algorithm is summarized in Section 2, which also presents an example of... |

698 | Interprocedural Slicing using Dependence Graphs - Horwitz, Reps, et al. - 1990 |

289 |
The program dependence graph in a software development environment
- Ottenstein, Ottenstein
- 1984
(Show Context)
Citation Context ...that is similar to the program dependence graphs that have been used previously in vectorizing and parallelizing compilers [5, 14]. It makes use of an operation on these graphs called program slicing =-=[19, 28]-=- to find potentially changed computations. The HPR algorithm is summarized in Section 2, which also presents an example of an integration. (Full details—and a more extensive example—can be found in [1... |

237 | Integrating noninterfering versions of programs
- Horwitz, Prins, et al.
- 1989
(Show Context)
Citation Context ...oal is to determine whether the modifications interfere, and, if they do not, to create an integrated program that includes all changes as well as all features of P that are preserved in all variants =-=[10]-=-. Opportunities for program integration arise in many situations: (1) A system may be “customized” by a user while simultaneously being upgraded by a maintainer. When the next release of the system is... |

226 |
Dependence Graphs and Compiler Optimization
- Kuck, Kuhn, et al.
- 1981
(Show Context)
Citation Context ...termine this information, the HPR algorithm employs a program representation that is similar to the program dependence graphs that have been used previously in vectorizing and parallelizing compilers =-=[5, 14]-=-. It makes use of an operation on these graphs called program slicing [19, 28] to find potentially changed computations. The HPR algorithm is summarized in Section 2, which also presents an example of... |

179 |
The Synthesizer Generator: A System for Constructing Language–Based Editors
- Reps, Teitelbaum
- 1988
(Show Context)
Citation Context ... interface for the integration tool incorporates a language-specific editor created using the Synthesizer Generator, a meta-system for creating interactive, language-based program-development systems =-=[21]-=-. The editor of the program-integration tool automatically supplies tags on program components (i.e., assignment statements and predicates) so that common components can be identified in different ver... |

144 |
Reps: Dependence analysis for pointer variables
- Horwitz, Pfeiffer, et al.
- 1989
(Show Context)
Citation Context ...ero.s− 4 − Although the capabilities of our current integration algorithms are severely limited, recent research has made progress towards extending the set of language constructs to which they apply =-=[9, 11]-=-. Our hope is that such extensions will share with the basic integration algorithm a common set of algebraic properties. However, we would like to avoid having to re-prove that each property holds eve... |

81 |
On the number of operations simultaneously executable in Fortran-like prograrns and their resulting speedup
- Kuck, Muraoka, et al.
- 1972
(Show Context)
Citation Context ...allelizing compilers [5, 14]. Different definitions of program dependence representations have been given, depending on the intended application, but all are variationss− 6 − on a theme introduced in =-=[13]-=- and share the common feature of having an explicit representation of data dependences (see below). The “program dependence graphs” defined in [5] introduced the additional feature of an explicit repr... |

61 |
B.: Programming environments based on structured editors: the mentor experience
- Donzeau-Gouge, Huet, et al.
- 1980
(Show Context)
Citation Context ...fferent editors cannot allocate the same new tag. A tagging facility meeting these requirements can be supported by language-based editors, such as those that can be created by such systems as MENTOR =-=[3]-=-, GANDALF [18], and the Synthesizer Generator 6 Component tags furnish the means for identifying how the program-dependence-graph vertices in different versions correspond. It is the tags that are use... |

49 |
Foundations of Mathematical Logic
- Curry
- 1963
(Show Context)
Citation Context ... ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢s¤ program program program ∅ program ¤ ¤ ¤ ¤ program program [1] x := 0 [1] x := 0; [1] x := 0; [1] x := 0 [1] x := 0; [1] x := ¤ ¤ ¤ 0; ¤ ¤ ¤ ¤ end(x) =-=[2]-=- y := x [2] y := x; end(x) [2] y := ¤ ¤ x; ¤ [2] ¤ y := x; end(x, y) [3] ¤ ¤ ¤ ¤ ¤ ¤ z := y [3] z := y [3] z := y ¤ ¤s£ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ... |

42 | The semantics of program slicing
- REPS, YANG
- 1988
(Show Context)
Citation Context ...ation. The paper is divided into seven sections and three appendices. Section 2 provides an overview of the HPR algorithm for program integration. It also reviews the results that were established in =-=[22, 25]-=- concerning the semantic properties of a program that results from an integration. Readers familiar with the HPR algorithm can skip directly to Section 3, which introduces the concepts from lattice th... |

33 |
The semantics of program slicing and program integration
- Reps, Yang
- 1989
(Show Context)
Citation Context ...ation. The paper is divided into seven sections and three appendices. Section 2 provides an overview of the HPR algorithm for program integration. It also reviews the results that were established in =-=[22, 25]-=- concerning the semantic properties of a program that results from an integration. Readers familiar with the HPR algorithm can skip directly to Section 3, which introduces the concepts from lattice th... |

29 |
On closed elements in closure algebras
- McKinsey, Tarski
- 1946
(Show Context)
Citation Context ...such a framework. 1.3. An Overview of the Contents A novel feature of our study is the use of Brouwerian algebra, rather than, for example, Boolean algebra or relational algebra. A Brouwerian algebra =-=[16]-=- is a distributive lattice with a pseudo-difference operation, a . − b, characterized by a . ¡ ¢ ¡ ¢ ¢ ¢ − b csiff a bs¡ ¡ c (see Section 3). Thes£sconnection between program integration and Brouweria... |

21 |
Illustrating interference in interfering versions of programs
- Reps, Bricker
- 1989
(Show Context)
Citation Context ...lices and integrate programs; if interference is detected during integration (i.e., integration fails), the system provides an interactive facility to help the user diagnose the cause of interference =-=[23]-=-. The user interface for the integration tool incorporates a language-specific editor created using the Synthesizer Generator, a meta-system for creating interactive, language-based program-developmen... |

20 | Efficient comparison of program slices
- Horwitz, Reps
- 1991
(Show Context)
Citation Context ...e-point slices for program integration is that, given slices s 1 and s 2 and vertices v 1 and v 2, it is possible to test in linear time whether s 1 and s 2 are isomorphic with respect to v 1 and v 2 =-=[12]-=-. Furthermore, by using hashing techniques the slice-set manipulations needed to perform operations in the algebra of downwards-closed untagged single-point slices can be performed in linear expected ... |

19 |
Composing Recursive Logic Programs with Clausal Join
- Lakhotia, Sterling
(Show Context)
Citation Context ...rinciple, programs can be integrated even if they are created using ordinary text editors. 7. Relation to Previous Work There has been previous work on merging functional programs [1], logic programs =-=[15]-=-, and specifications [4]. Different models of integration have been used in each case. In Berzins’s work ons¡ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢s13 Defining a good heuristic for thi... |

16 |
On merging software extensions
- BERZINS
- 1986
(Show Context)
Citation Context ...¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢s¤ program program program ∅ program ¤ ¤ ¤ ¤ program program =-=[1]-=- x := 0 [1] x := 0; [1] x := 0; [1] x := 0 [1] x := 0; [1] x := ¤ ¤ ¤ 0; ¤ ¤ ¤ ¤ end(x) [2] y := x [2] y := x; end(x) [2] y := ¤ ¤ x; ¤ [2] ¤ y := x; end(x, y) [3] ¤ ¤ ¤ ¤ ¤ ¤ z := y [3] z := y [3] z ... |

15 |
Detecting Interference when Merging Specification Evolutions
- Feather
- 1989
(Show Context)
Citation Context ... integrated even if they are created using ordinary text editors. 7. Relation to Previous Work There has been previous work on merging functional programs [1], logic programs [15], and specifications =-=[4]-=-. Different models of integration have been used in each case. In Berzins’s work ons¡ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢s13 Defining a good heuristic for this program-reconstitution... |

11 |
Demonstration of a prototype tool for program integration
- Reps
- 1989
(Show Context)
Citation Context ....8. Theorem 5.9 is illustrated in Figure 13. 6. Some Practical Considerations 6.1. Implementation A program-integration tool that uses the HPR algorithm has been demonstrable since the summer of 1987 =-=[24, 27]-=-. With the integration tool, one is able to display program slices and integrate programs; if interference is detected during integration (i.e., integration fails), the system provides an interactive ... |

10 |
A couple of novelties in the propositional calculus. Zeitschrift für mathematische Logik und Grundlagen der Mathematik 31(2
- Hoare
- 1985
(Show Context)
Citation Context ... [base ]b that has been used here for the integration operation in Brouwerian algebras is taken from a paper by Hoare in which he investigated some of the properties of a [base ]b in Boolean algebras =-=[7, 8]-=-. However, nearly all of the questions examined in this work (for Brouwerian algebras) were not addressed by Hoare (for Boolean algebras). In unpublished work, Susan Horwitz and I found proofs of seve... |

3 |
A couple of novelties in the propositional calculus
- Hoare
- 1985
(Show Context)
Citation Context ... [base ]b that has been used here for the integration operation in Brouwerian algebras is taken from a paper by Hoare in which he investigated some of the properties of a [base ]b in Boolean algebras =-=[7, 8]-=-. However, nearly all of the questions examined in this work (for Brouwerian algebras) were not addressed by Hoare (for Boolean algebras). In unpublished work, Susan Horwitz and I found proofs of seve... |