
arXiv: 1804.01839
AbstractContext-sensitive global analysis of large code bases can be expensive, which can make its use impractical during software development. However, there are many situations in which modifications are small and isolated within a few components, and it is desirable to reuse as much as possible previous analysis results. This has been achieved to date through incremental global analysis fixpoint algorithms that achieve cost reductions at fine levels of granularity, such as changes in program lines. However, these fine-grained techniques are neither directly applicable to modular programs nor are they designed to take advantage of modular structures. This paper describes, implements, and evaluates an algorithm that performs efficient context-sensitive analysis incrementally on modular partitions of programs. The experimental results show that the proposed modular algorithm shows significant improvements, in both time and memory consumption, when compared to existing non-modular, fine-grain incremental analysis techniques. Furthermore, thanks to the proposed intermodular propagation of analysis information, our algorithm also outperforms traditional modular analysis even when analyzing from scratch.
FOS: Computer and information sciences, incremental analysis, constrained Horn clauses, program analysis, Logic and constraint programming, fixpoint algorithms, Logic programming, abstract interpretation, Constrained Horn clauses, modular analysis, Fixpoint algorithms, Informática, I.2.2, logic and constraint programming, I.2.3, D.2.4; F.3.1; I.2.2; I.2.3, Computer Science - Programming Languages, Incremental analysis, Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.), D.2.4, Program analysis, Abstract interpretation, Modular analysis, F.3.1, Programming Languages (cs.PL)
FOS: Computer and information sciences, incremental analysis, constrained Horn clauses, program analysis, Logic and constraint programming, fixpoint algorithms, Logic programming, abstract interpretation, Constrained Horn clauses, modular analysis, Fixpoint algorithms, Informática, I.2.2, logic and constraint programming, I.2.3, D.2.4; F.3.1; I.2.2; I.2.3, Computer Science - Programming Languages, Incremental analysis, Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.), D.2.4, Program analysis, Abstract interpretation, Modular analysis, F.3.1, Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 8 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Top 10% |
