Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
On merging software extensions
Acta Informatica
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the adequacy of program dependence graphs for representing programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A mechanism for efficient debugging of parallel programs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Generating sequential code from parallel code
ICS '88 Proceedings of the 2nd international conference on Supercomputing
Restructuring Lisp programs for concurrent execution
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A mechanism for efficient debugging of parallel programs
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Illustrating interference in interfering versions of programs
SCM '89 Proceedings of the 2nd International Workshop on Software configuration management
On the adequacy of program dependence graphs for representing programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Object management in a CASE environment
ICSE '89 Proceedings of the 11th international conference on Software engineering
The semantics of program dependence
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Detecting interference when merging specification evolutions
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The implications of program dependencies for software testing, debugging, and maintenance
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Profiling an Incremental Data Flow Analysis Algorithm
IEEE Transactions on Software Engineering
Data Dependency Graphs for Ada Programs
IEEE Transactions on Software Engineering
Compact representations for control dependence
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A foundation for sequentializing parallel code
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
IEEE Transactions on Software Engineering
Performing data flow analysis in parallel
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Conditions to assure semantically consistent software merges in linear time
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
SPARE: A Development Environment for Program Analysis Algorithms
IEEE Transactions on Software Engineering
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
The transitive closure of control dependence: the iterated join
ACM Letters on Programming Languages and Systems (LOPLAS)
Register allocation over the program dependence graph
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Experimental results from dynamic slicing of C programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
APT: a data structure for optimal control dependence computation
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Optimal control dependence computation and the Roman chariots problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program and interface slicing for reverse engineering
ICSE '93 Proceedings of the 15th international conference on Software Engineering
A Development Environment for Complex Distributed Real-Time Applications
IEEE Transactions on Software Engineering
Toward experimental evaluation of subsystem classification recovery techniques
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Interprocedural slicing using dependence graphs
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Decentralizing execution of composite web services
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Multi-level Editing of Hierarchical Documents
Computer Supported Cooperative Work
Hi-index | 0.00 |
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 integrate programs by hand. The main contribution of this paper is an algorithm, called integrate, that takes as input three programs A, B, and Base, where A and B are two variants of Base. Whenever the changes made to Base to create A and B do not “interfere” (in a sense defined in the paper), Integrate produces a program M that integrates A and B.