On the power and limitations of strictness analysis

被引:4
作者
Sekar, R [1 ]
Ramakrishnan, IV [1 ]
Mishra, P [1 ]
机构
[1] SUNY STONY BROOK,DEPT COMP SCI,STONY BROOK,NY 11794
关键词
abstract interpretation; completeness; program analysis; strictness analysis;
D O I
10.1145/258128.258212
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Strictness analysis is an important technique for optimization of lazy functional languages. It is well known that all strictness analysis methods are incomplete, i.e., fair to report some strictness properties. In this paper, we provide a precise and formal characterization of the loss of information that leads to this incompleteness. Specifically, we establish the following characterization theorem for Mycroft's strictness analysis method and a generalization of this method, called ee-analysis, that reasons about exhaustive evaluation in nonflat domains: Mycroft's method will deduce a strictness property for program P iff the property is independent of any constant appearing in any evaluation of P. To prove this, we specify a small set of equations, called E-axioms, that capture the information loss in Mycroft's method and develop a new proof technique called E-rewriting. E-rewriting extends the standard notion of rewriting to permit the use of reductions using E-axioms interspersed with standard reduction steps. E-axioms are a syntactic characterization of information loss and E-rewriting provides an algorithm-independent proof technique for characterizing the power of analysis methods. It can be used to answer questions on completeness and incompleteness of Mycroft's method on certain natural classes of programs. Finally, the techniques developed in this paper provide a general principle for establishing similar results for other analysis methods such as those based on abstract interpretation. As a demonstration of the generality of our technique, we give a characterization theorem for another variation of Mycroft's method called dd-analysis.
引用
收藏
页码:505 / 525
页数:21
相关论文
共 20 条
[1]  
Augustsson Lennart, 1984, P 1984 ACM C LISP FU, P218, DOI DOI 10.1145/800055.802038
[2]  
BURN G, 1985, LECT NOTES COMPUTER, V217
[3]  
CLACK C, 1985, LECT NOTES COMPUTER, V20, P35
[4]  
Cousot P, 1977, POPL, P238, DOI DOI 10.1145/512950.512973
[5]  
ERNOULT C, 1995, J FUNCT PROG, V5, P38
[6]  
HALL CV, 1987, P 14 ANN ACM S PRINC, P132
[7]  
HUDAK P, 1986, 12TH ACM S PRIN PROG, P97
[8]  
HUET G, 1979, 359 IRIA
[9]  
HUGHES R, 1987, LECT NOTES COMPUTER, V27, P385
[10]  
Hunt S., 1991, Journal of Functional Programming, V1, P9, DOI 10.1017/S0956796800000071