RCS—a system for version control
Software—Practice & Experience
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
An incremental algorithm for software analysis
SDE 2 Proceedings of the second ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Efficient recompilation of module interfaces in a software development environment
SDE 2 Proceedings of the second ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Incremental data flow analysis
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Data Structures and Algorithms
Data Structures and Algorithms
Filtering import: a basic mechanism for reusability
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Hi-index | 0.00 |
The ripple recompilation problem is caused by modifying one or more modules in an integrated set of modules, or it results from forming a new integrated set of modules. This problem could be significant if the modified modules are widely used in the set. The main objective of this paper is to present the systematic and efficient technique employed in ROPCO (Reuse On Persistent Code and Object code) to limit this effect in a persistent reuse environment. The problem is addressed in the context of strongly-typed and separately-compiled programming languages. The approach presented consists of two phases. In the first phase, the compilation dependency graph of all modules is generated, change sets are computed, and candidate modules are marked. In the second phase, modules that are candidates for recompilation are visited and two lists for logical and physical inconsistencies are generated. Algorithms are given for both phases. An analysis of the computational complexity of the algorithms is also included.