TY - GEN
T1 - Incremental and demand-driven points-to analysis using logic programming
AU - Saha, Diptikalyan
AU - Ramakrishnan, C. R.
PY - 2005
Y1 - 2005
N2 - Several program analysis problems can be cast elegantly as a logic program. In this paper we show how recently-developed techniques for incremental evaluation of logic programs can be refined and used for deriving practical implementations of incremental program analyzers. Incremental program analyzers compute the changes to the analysis information due to small changes in the input program rather than re-analyzing the program. Demand-driven analyzers compute only the information requested by the client analysis/optimization, We describe a framework based on logic programming for implementing program analyses that combines incremental and demand driven techniques. We show the effectiveness of this approach by building a practical incremental and demand-driven context insensitive points-to analysis and evaluating this implementation for analyzing C programs with 10-70K lines of code, Experiments show that our technique can compute the changes to analysis information due to small changes in the input program in, on the average, 6% of the time it takes to reanalyze the program from scratch, and with little space overhead.
AB - Several program analysis problems can be cast elegantly as a logic program. In this paper we show how recently-developed techniques for incremental evaluation of logic programs can be refined and used for deriving practical implementations of incremental program analyzers. Incremental program analyzers compute the changes to the analysis information due to small changes in the input program rather than re-analyzing the program. Demand-driven analyzers compute only the information requested by the client analysis/optimization, We describe a framework based on logic programming for implementing program analyses that combines incremental and demand driven techniques. We show the effectiveness of this approach by building a practical incremental and demand-driven context insensitive points-to analysis and evaluating this implementation for analyzing C programs with 10-70K lines of code, Experiments show that our technique can compute the changes to analysis information due to small changes in the input program in, on the average, 6% of the time it takes to reanalyze the program from scratch, and with little space overhead.
KW - Demand-drive analysis
KW - Incremental analysis
KW - Logic programming
KW - Pointer analysis
UR - https://www.scopus.com/pages/publications/27144462184
U2 - 10.1145/1069774.1069785
DO - 10.1145/1069774.1069785
M3 - Conference contribution
SN - 1595930906
SN - 9781595930903
T3 - PPDP'05 - Proceedings of the Seventh ACM SIGPLAN Conference on Principles and Practice of Declarative Programming
SP - 117
EP - 128
BT - PPDP'05 - Proceedings of the Seventh ACM SIGPLAN Conference on Principles and Practice of Declarative Programming
PB - Association for Computing Machinery
T2 - PPDP'05 - 7th ACM SIGPLAN Conference on Principles and Practice of Declarative Programming
Y2 - 11 July 2005 through 13 July 2005
ER -