REEXECUTION IN ABSTRACT INTERPRETATION OF PROLOG

被引:4
|
作者
LECHARLIER, B [1 ]
VANHENTENRYCK, P [1 ]
机构
[1] BROWN UNIV,PROVIDENCE,RI 02912
关键词
D O I
10.1007/s002360050013
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Logic programming, because of referential transparency, enjoys the property that a literal may be reexecuted finitely often without affecting the meaning of the program. This property, although not interesting computationally in general, can be exploited in abstract interpretation to improve the accuracy of the analysis, as noted by Bruynooghe in [6]. We study reexecution from its theoretical foundations to its experimental evaluation. We define a new abstract semantics for Prolog, which incorporates the notion of reexecution, and we study its correctness and precision properties. A fixpoint algorithm to compute the abstract semantics is then presented. The accuracy and efficiency of the algorithm is evaluated experimentally on two abstract domains, a simple and an elaborate one, and compared with conventional approaches. The experimental results indicate that (1) reexecution can provide significant gains in accuracy at a very reasonable computation cost and that (2) reexecution on a simple domain is a versatile alternative to the standard approach on a more sophisticated domain.
引用
收藏
页码:209 / 253
页数:45
相关论文
共 50 条