A framework for the integration of partial evaluation and abstract interpretation of logic programs

被引:14
作者
Leuschel, M [1 ]
机构
[1] Univ Southampton, Dept Elect & Comp Sci, Southampton SO17 1BJ, Hants, England
[2] Univ Copenhagen, DIKU, DK-1168 Copenhagen, Denmark
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2004年 / 26卷 / 03期
关键词
languages; theory; verification; partial deduction; partial evaluation; program transformation; abstract interpretation; logic programming; flow analysis;
D O I
10.1145/982158.982159
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Recently the relationship between abstract interpretation and program specialization has received a lot of scrutiny, and the need has been identified to extend program specialization techniques so as to make use of more refined abstract domains and operators. This article clarifies this relationship in the context of logic programming, by expressing program specialization in terms of abstract interpretation. Based on this, a novel specialization framework, along with generic correctness results for computed answers and finite failure under SLD-resolution, is developed. This framework can be used to extend existing logic program specialization methods, such as partial deduction and conjunctive partial deduction, to make use of more refined abstract domains. It is also shown how this opens up the way for new optimizations. Finally, as shown in the paper, the framework also enables one to prove correctness of new or existing specialization techniques in a simpler manner. The framework has already been applied in the literature to develop and prove correct specialization algorithms using regular types, which in turn have been applied to the verification of infinite state process algebras.
引用
收藏
页码:413 / 463
页数:51
相关论文
共 94 条
[1]  
Albert E, 1998, LECT NOTES COMPUT SC, V1503, P262
[2]   Partial evaluation of functional logic programs [J].
Alpuente, M ;
Falaschi, M ;
Vidal, G .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (04) :768-844
[3]  
[Anonymous], LECT NOTES COMPUTER
[4]  
APT KR, 1990, HDB THEORETICAL COMP, VB, P495
[5]  
Benkerimi K., 1993, Journal of Logic and Computation, V3, P469, DOI 10.1093/logcom/3.5.469
[6]   LOOP CHECKING IN PARTIAL DEDUCTION [J].
BOL, R .
JOURNAL OF LOGIC PROGRAMMING, 1993, 16 (1-2) :25-46
[7]   DERIVING FOLD UNFOLD TRANSFORMATIONS OF LOGIC PROGRAMS USING EXTENDED OLDT-BASED ABSTRACT INTERPRETATION [J].
BOULANGER, D ;
BRUYNOOGHE, M .
JOURNAL OF SYMBOLIC COMPUTATION, 1993, 15 (5-6) :495-521
[8]   A PRACTICAL FRAMEWORK FOR THE ABSTRACT INTERPRETATION OF LOGIC PROGRAMS [J].
BRUYNOOGHE, M .
JOURNAL OF LOGIC PROGRAMMING, 1991, 10 (02) :91-124
[9]   A GENERAL CRITERION FOR AVOIDING INFINITE UNFOLDING DURING PARTIAL DEDUCTION [J].
BRUYNOOGHE, M ;
DESCHREYE, D ;
MARTENS, B .
NEW GENERATION COMPUTING, 1992, 11 (01) :47-79
[10]   TRANSFORMATION SYSTEM FOR DEVELOPING RECURSIVE PROGRAMS [J].
BURSTALL, RM ;
DARLINGTON, J .
JOURNAL OF THE ACM, 1977, 24 (01) :44-67