28 citations found. Retrieving documents...
S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, 1989.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Continuous Grammars - Ruckert (1999)   (1 citation)  (Correct)

....correctors usually try to correct the input one error at a time. This is reasonable, since syntax errors in real programs tend to be spaxse[14] and efficient. In contrast, the seaxch for a transformation that repairs all errors combined with the globally least cost is prohibitively expensive[l] [11]. Therefore, our final measure of distance between paxse trees adds up the diameters of node sets each repairing one token in the input string. To normalize this metric, we measure the size of the node set relative to the size of the input string. We use I I. I I to denote this normalized single ....

Susan L. Graham, Michael A. Haxrison, and Walter L. Ruzzo. An improved context-free recognizer. ACM Transactions on Programming Languages and Systems, 2(3):415-462, July 1980.


A New Approach to Version Control - Plaice, Wadge (1993)   (14 citations)  (Correct)

....language allows the join of independent versions does not necessarily mean that any arbitrary join actually makes sense. However, should a merge be made, and it does make sense, then the join perfectly addresses the need to describe the merge. Do note that no merging of text or of code, as in [10], is taking place here. The merging only takes place at the version name, and the configuration manager must ensure that the components do make sense together. The only checking that takes place is syntactic, at the level of the version names (see x4) 3.4 Canonical form The equality axioms ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345-- 387, july 1989.


Identifying Similar Code with Program Dependence Graphs - Krinke (2001)   (21 citations)  (Correct)

....systems are only partly successful because of the tradeoff between recall and precision, both for detection of plagiarism [15] and detection of similar code [11] The opposite problem to identifying similar or identical parts of programs is identifying the differences between programs. [7, 6] is an approach to identify program differences based on program dependence graphs. However, that approach relies on the existence of a mapping that maps every vertex of one program to a vertex of the other if the representing program components are the same in both programs. The authors suggest ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3), 1989.


Interprocedural Control Dependence - Sinha, Harrold, Rothermal (2000)   (1 citation)  (Correct)

....that do exist, which can lead to errors of omission in solutions to analysis problems. For some analyses, such as slicing for reverse engineering, errors of omission may be acceptable [19] for other analyses, such as slicing for program integration, errors of omission are not allowable [14]. This paper addresses the issues surrounding interprocedural control dependences, and their potential effects on interprocedural analysis techniques. The main contributions of the paper are: ffl A description of several ways in which control dependences computed intraprocedurally inaccurately ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Trading Precision for Speed in Slicing - Danicic, Fox, Harman, Hierons..   (Correct)

.... Precision, Logical Calculi 1 INTRODUCTION Slicing has many applications in software engineering, including program comprehension [8, 14] software maintenance [3, 11, 10] debugging [34, 1, 20, 24] testing [4, 13, 17] re use [2, 6] and integration of separate (but related) program modi cations [18]. Tip [28] and Binkley and Gallagher [5] provide detailed surveys of the paradigms, applications and algorithms for program slicing. Speed of slice construction is a crucial problem which inhibits the application of slicing to some of these application areas. The complexity for constructing the ....

S. Horwitz, J. Prins, and T. Reps. Integrating non{ interfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345-387, July 1989.


TAOS: Testing with Analysis and Oracle Support - Richardson (1994)   (32 citations)  (Correct)

....its variable manipulation. These syntactic relationships between program statements define program dependences. Program dependences have been used in software development primarily as a basis for program optimization [KKL 81, FOW87] and program slicing for debugging [Wei82] and maintenance [HPR89] Program dependences are also significant for program testing [Kor87, PC90] During these activities, in particular, one is often interested in when a change in the semantics of one component affects the behavior of another component. These essential semantic relationships between components can ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Interprocedural Control Dependence - Sinha, Harrold, Rothermel (2000)   (1 citation)  (Correct)

....that do exist, which can lead to errors of omission in solutions to analysis problems. For some analyses, such as slicing for reverse engineering, errors of omission may be acceptable [19] for other analyses, such as slicing for program integration, errors of omission are not allowable [14]. This paper addresses the issues surrounding interprocedural control dependences, and their potential effects on interprocedural analysis techniques. The main contributions of the paper are: ffl A description of several ways in which control dependences computed intraprocedurally inaccurately ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Renaming Detection - Malpohl, Hunt, Tichy (2000)   (1 citation)  (Correct)

....for merging, since it can be used for actively updating identifiers if one variant contains changed identifiers and the other changed code. Prior work in merging includes the operation based merging of Lippe et al. 8] the tree merge of Westfechtel[15] and the semantic merging of Reps et al.[3, 4, 1]. Lippe et al. require an editor that produces a re playable history of transformations that change the base version into the variant. However, the authors do not indicate the level of these transformations nor where they come from. Keystroke logs of editors would certainly be too low level. The ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, 1989.


Software Configuration Management: State of the Art, State of .. - Frühauf, Zeller   (Correct)

....for two or more people s changes interfering with each other are high; this leads to conflicts that must be resolved. This merging of changes is still manual work. Textual merging is considered too unsafe for many environments; the effectiveness of syntactic merging [33, 3] and semantic merging [16, 2] has not yet been validated. Any solutions that ease the pain of manual conflict resolution are likely to save valuable developer time; here is still work to do. A group working together needs connectivity to propagate changes. Given a small group with good interconnection, a central repository ....

HORWITZ, S., PRINS, J., AND REPS, T. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems 11, 3 (July 1989), 345--387.


Tree-Based Code Optimization - McConnell (1992)   (3 citations)  (Correct)

....CDGs. When edges representing data dependences are added to the CDG, the result is essentially the program representation graph (PRG) of [YHR89] which in turn is similar to the program dependence graph of [FOW87] In structured programs, computing control dependences is trivial: as noted in [HPR89], a statement is only control dependent on its nearest if then ancestor in the AST. In CORTL programs, though, this is not always true: as Figure 9 shows, there is often no simple relationship between an if then statement and the statements that are control dependent on it. Algorithm ControlDep in ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Static Analysis for a Software Transformation Tool - Morgenthaler (1997)   (7 citations)  (Correct)

....still, the PDG shows only the control and data dependences between program operations. Building a PDG requires both control flow information (e.g. a CFG) and data flow analysis. The PDG is useful for compiler optimizations [17] program slicing [48] and integrating multiple program versions [29]. All of these representations are exhaustive in nature. That is, they represent a portion of the program (often a single function) in its entirety. Every fact of interest appears explicitly in these data structures, usually as an edge between two nodes. In an optimizing compiler, these ....

....instance, Griswold s prototype [20, 24] Opdyke s refactory [47] and REFINE Cobol [41] all use the AST to display or output the source. Rederiving source code from other representations is more difficult. For example, the PDG has been used as the basis of an algorithm for merging program versions [29, 58, 59]. However, the PDG only stores dependences between computationally related program components [17] ignoring explicit statement order. To reconstitute the merged program (as an AST) all operations must first be ordered. Unfortunately, this ordering step is NP complete, and may also fail if the ....

[Article contains additional citation context not shown here]

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, pages 345-- 387, July 1989.


Program Restructuring as an Aid to Software Maintenance - Griswold (1991)   (26 citations)  (Correct)

....use its variables. From a performance standpoint, the time required to unparse the PDG after each transformation must be considered, since the programmer cannot be expected to restructure the PDG directly. PDG unparsing is in NP, although in practice this is not considered to be a serious problem [Horwitz et al. 89] However, even a linear algorithm (the quickest possible) may be a problem if rapid restructuring is desired. Performance and the dependence on the original syntax of the program imply that the AST must be the core program representation that is manipulated by the programmer and the tool. Thus ....

....and the PDG is used only as a notation for showing that transformations preserve meaning and also in the tool for quickly retrieving needed dependence information. Since scoping impacts the PDG, a notation called 1 This constraint is applied for ordering statements in program version merging [Horwitz et al. 89] and is implemented using maps between the PDG and AST (Susan Horwitz, Personal Communication, 1991) similar to those discussed in Chapter 5.3. 60 contours is derived from the AST to help reason about transformations in the PDG. The commutative diagram in Figure 4.1b is suggested, with the PDG ....

[Article contains additional citation context not shown here]

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, pages 345--387, July 1989.


Interfacing Cooperative Transactions to Software Development.. - Gail E. Kaiser (1991)   (Correct)

....object after the first programmer s checkout and requires that the changes to be merged; a text based merge tool is provided. While this does not fully solve the merge problem, other research has provided hope that semantically correct merging can be automated and invalid merging can be prevented [Horwitz 89] In NSE, a semantically related set of objects, called a component, is checked in as a unit; this does not by itself guarantee semantic consistency among the objects in the component, but makes it possible to require some form of consistency analysis prior to checkin. Our Infuse system, which ....

Susan Horwitz, Jan Prins and Thomas Reps. Integrating Noninterfering Versions of Programs. ACM Transactions on Programming Languages and Systems 11(3):345-387, July, 1989.


Identifying Conflicts During Structural Merge - Asklund (1994)   (8 citations)  (Correct)

....which will avoid long re calculations to take place when revision focus is changed. We will also investigate the use of semantic information for making more intelligent diff and merge functionality, not only taking lexical changes into account but also the semantic consequences of a change [HPR89] Acknowledgment I want to thank all the members of the software development research group at Dept. of Computer Science, Lund University, for stimulating discussions which have contributed substantially to the work presented in this paper. In particular, I want to thank Sten Min r for ....

S. Horwitz, J. Prins, and T. Reps. Integrating Noninterfering Versions of Programs. ACM Transactions of Programming Languages and Systems, 11(3), July 1989.


Generating Efficient Substring Parsers for BRC Grammars - Ruckert (1998)   (Correct)

.... approaches to error diagnosis and recovery use combinations of simple local repairs with regional minimum distance correction and elaborate global recovery schemes which have little to do with the primitive panic mode (e.g. 4, 5] The theoretically best methods use O(n 3 ) parsing algorithms [10, 7] and are considered too slow for practical use [37] None of these methods produces an error diagnosis good enough to attempt true error correction. Using theoretical investigation of parsing and error correction, Wetherell[36] concludes: But there is simply no hope of building efficient (i.e. ....

Susan L. Graham, Michael A. Harrison, and Walter L. Ruzzo. An improved context-free recognizer. ACM Transactions on Programming Languages and Systems, 2(3):415--462, July 1980.


Towards Automatic Debugging of Computer Programs - Agrawal (1991)   (15 citations)  (Correct)

....statements by them) BC85] Uses of program slicing have also been suggested in many other applications, e.g. program verification, testing, maintenance, automatic parallelization of program execution, automatic integration of program versions, software metrics, etc. see, e.g. Wei84, BC85, HPR89b, GL89, OT89, LOS86] When a program slice is defined with respect to a variable occurrence, it is assumed that control does eventually reach the corresponding program location. The issue of non termination of program execution is not addressed under this definition. Podgurski and Clark have ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Supporting Autonomous Work and Reintegration in.. - Berger, Schill, Volksen (1998)   (1 citation)  (Correct)

....File Merge [19] and collaborative systems. Within collaborative systems three specific application domains may be distinguished: text editing systems (Flexible Diff [20] Object Merging [21] FrameMaker [22] software development (Rcsmerge [23] Fileresolve [24] FileMerge [25] Integrate [26], Code Inspection [5] Lazy Consistency [27] and framework systems (COCOON [5] GINA [28] Lotus Notes [29] Liveware [30] Less comprehensive classifications with different point of emphasis are given in [8] and [21] 3.1 Detection of Inconsistencies, Definition and Granularity of Conflicts ....

Horwitz, S., Prins, J., Reps, T.: Integrating Noninterfering Versions of Programs. ACM Transactions on Programming Languages and Systems, Vol. 11, No. 3, July 1989, pp. 345-387.


A Flexible Object Merging Framework - Jonathan Munson (1994)   (15 citations)  (Correct)

.... include the UNIX diff3 tool, the RCS rcsmerge tool [11] and the fileresolve tool in Sun s Network Software Environment [1] Research efforts include the work of Horwitz, Prins, and Reps with a program merging tool that detects an inconsistent merge through the use of program dependency graphs [6], and the GINA collaborative application framework [2] which allows users to merge revised versions by merging command histories. Work related to object merging includes the PREP flexible diff tool [9] which gives users flexibility in finding and pinpointing differences, and the concurrency ....

....of changes to a file, and can automatically merge changes that do not overlap. Overlapping changes are flagged and presented to the user performing the merge, who may select one change or the other, or modify the file by hand. Changes may also be undone. Semantic diff. Horwitz, Prins, and Reps [6] present an algorithm (which we refer to as Semantic diff ) to merge two different versions of a program in a semantically correct fashion. That is, if the two versions do not interfere with each other, Semantic diff will produce a merged program that incorporates the semantics of both ....

Horwitz, S., Prins, J., and Reps, T. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems 11, 3 (July 1989), 345--387.


Using the Unravel Program Slicing Tool to Evaluate High.. - Lyle, Wallace (1997)   (4 citations)  (Correct)

....be used to transform a large program into a smaller one containing only those statements relevant to the computation of a given variable. Program slices have been shown to aid testing[2] debugging[5] program maintenance[1] program understanding[7] and automatic integration of program variants[3]. A Program Slice is defined as follows: Figure 1: Slice on Output 1 Given a syntactically correct source program P, in some programming language, and a slicing criterion C = L; V . Where L is a location in the program and V is a variable in the program. S is a slice of program P for ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345-- 387, July 1989.


Cooperative Transactions for Multi-User Environments - Kaiser (1994)   (19 citations)  (Correct)

....will have to be merged later. That is, it assumes any semantic conflicts between version branches can be adequately resolved (usually by one user manually constructing a new version to reflect the changes introduced in several versions, although some progress has been made in automatic merging [Horwitz et al. 89] Considering our example, Bob and Alice would checkout modules X and Y, respectively; Bob would later checkout module Z when he discovered it was also needed for his task. Since Alice does not need to modify Z, she could use whatever commands are provided by the version management tool to ....

Susan Horwitz, Jan Prins and Thomas Reps. Integrating Noninterfering Versions of Programs. ACM Transactions on Programming Languages and Systems 11(3):345-387, July, 1989.


Fine-Grained Revision Control for Collaborative Software.. - Magnusson, Asklund, Minör (1993)   (37 citations)  (Correct)

....which will avoid long recalculations to take place when revision focus is changed. We will also investigate the use of semantic information for making more intelligent diff and merge functionality, not only taking lexical 9 changes into account but also the semantic consequences of a change [HPR89]. 5 CONCLUSIONS We have identified fine grained revision control as a crucial enabling technique for supporting software evolution by possibly geographically distributed teams of software engineers. The main characteristics of our design includes support for versioning in hierarchically ....

Horwitz, S., Prins, J., Reps, T., Integrating Noninterfering Versions of Programs, ACM Transactions of Programming Languages and Systems, 11(3), July 1989.


A Survey of Program Slicing Techniques - Tip (1995)   (251 citations)  (Correct)

....of slices in terms of denotational semantics. He distinguishes three independent dimensions according to which slices can be categorized: static vs. dynamic, backward vs. forward, and closure vs. executable. Some of the slicing methods in the literature are classified according to these criteria [5, 41, 44, 57, 69, 85]. Moreover, Venkatesh introduces the concept of a quasi static slice. This corresponds to situations where some of the inputs of a program are fixed, and some are unknown. No constructive algorithms for computing slices are presented in [79] In [59] Lakhotia restates a number of static slicing ....

....Venkatesh introduces the concept of a quasi static slice. This corresponds to situations where some of the inputs of a program are fixed, and some are unknown. No constructive algorithms for computing slices are presented in [79] In [59] Lakhotia restates a number of static slicing methods [41, 69, 85] as well as the program integration algorithm of [41] in terms of operations on directed graphs. He presents a uniform framework of graph slicing, and distinguishes between syntactic properties of slices which can be obtained solely through graph theoretic reasoning, and semantic properties which ....

[Article contains additional citation context not shown here]

Horwitz, S., Prins, J., and Reps, T. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems 11, 3 (1989), 345--387.


Efficient Debugging with Slicing and Backtracking - Agrawal, DeMillo, Spafford (1990)   (2 citations)  (Correct)

....slices (referred to as partial statements by them) BC85] Uses of program slicing have also been suggested in many other applications, e.g. program verification, testing, maintenance, automatic parallelization of program execution, automatic integration of program versions, etc. see, e.g. [Wei84, BC85, HPR89]) When a program slice is defined with respect to a variable occurrence, it is assumed that control does eventually reach the corresponding program location. The issue of non termination of program execution is not addressed under this definition. Podgurski and Clark have extended the regular ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Dynamic Slicing in the Presence of Unconstrained Pointers - Agrawal (1991)   (31 citations)  (Correct)

.... dependencies involving program nontermination [18] Uses of program slicing have also been suggested in many other applications, e.g. program verification, testing, maintenance, automatic parallelization of program execution, and automatic integration of program versions (see, e.g. [20, 7, 11]) Korel and Laski extended Weiser s static slicing algorithms for the dynamic case [13] Their definition requires that if any one occurrence of a statement in the execution history is included in the slice then all other occurrences of that statement be automatically included in the slice. For ....

Susan Horwitz, Jan Prins, and Thomas Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, July 1989.


Program Slicing for VHDL - Clarke, Fujita, Rajan, Reps.. (1999)   (2 citations)  Self-citation (Reps)   (Correct)

....not necessarily textually contiguous [27,28,22,8,13,14] See [26,4] for surveys on slicing. Slicing, and subsequent manipulation of slices, has applications in many software engineering tools, including tools for program understanding, maintenance [9] debugging [20] testing [2,1] di erencing [12, 11], specialization [25] reuse [21] and merging [12] In Weiser s terminology, a slicing criterion is a pair hp; V i where p is a program point and V is a subset of the program s variables. In his work, a program slice consists of all statements and predicates of the program that might a ect the ....

....(See [26,4] for surveys on slicing. Slicing, and subsequent manipulation of slices, has applications in many software engineering tools, including tools for program understanding, maintenance [9] debugging [20] testing [2,1] di erencing [12, 11] specialization [25] reuse [21] and merging [12]. In Weiser s terminology, a slicing criterion is a pair hp; V i where p is a program point and V is a subset of the program s variables. In his work, a program slice consists of all statements and predicates of the program that might a ect the values of variables in V at point p. This is a more ....

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345-387, July 1989.


XML Three-way Merge as a Reconciliation Engine for - Mobile Data Tancred   (Correct)

No context found.

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, 1989.


XML Three-way Merge as a Reconciliation Engine for Mobile Data - Lindholm (2003)   (1 citation)  (Correct)

No context found.

S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345--387, 1989.


Equivalence of Conservative, Free, Linear Program.. - Laurence.. (2002)   (Correct)

No context found.

S. Horwitz, J. Prins, T. Reps, Integrating non{interfering versions of programs, ACM Transactions on Programming Languages and Systems 11 (3) (1989) 345{ 387.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC