ACM Home Page
Please provide us with feedback. Feedback
Incremental and demand-driven points-to analysis using logic programming
Full text PdfPdf (226 KB)
Source International Conference on Principles and Practice of Declarative Programming archive
Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming table of contents
Lisbon, Portugal
Pages: 117 - 128  
Year of Publication: 2005
ISBN:1-59593-090-6
Authors
Diptikalyan Saha  University of Stony Brook, Stony Brook, NY
C. R. Ramakrishnan  University of Stony Brook, Stony Brook, NY
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 35,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1069774.1069785
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
L. O. Anderson. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Unversity of Copenhagen, 1994.
4
5
6
 
7
8
9
10
11
 
12
13
14
15
 
16
17
 
18
S. Guyer and C. Lin. Client-driven pointer analysis. In Static Analysis Symposium, pages 214--236, 2003.
19
20
21
22
23
 
24
25
 
26
 
27
28
 
29
R. Ramakrishnan. Magic Templates: A spellbinding approach to logic programming. In JICSLP, 1988.
 
30
P. Rao, C. R. Ramakrishnan, and I. V. Ramakrishnan. A thread in time saves tabling time. In Joint International Conference/Symposium on Logic Programming. MIT Press, 1996.
 
31
T. W. Reps. Demand interprocedural program analysis using logic databases. In Workshop on Programming with Logic Databases, ILPS, pages 163--196, 1993.
32
 
33
D. Saha and C. R. Ramakrishnan. Incremental and demand-driven points-to analysis using logic programming. Downloads are available at www.lmc.cs.sunysb.edu/~dsaha/incr_pta.
 
34
D. Saha and C. R. Ramakrishnan. Incremental evaluation of tabled logic programs. In International Conference on Logic Programming, volume 2916 of LNCS, pages 389--406, 2003.
 
35
36
37
 
38
 
39
40
41
42
 
43
XSB. The XSB logic programming system. Available from http://xsb.sourceforge.net.
44
45


Collaborative Colleagues:
Diptikalyan Saha: colleagues
C. R. Ramakrishnan: colleagues