Incremental analysis of constraint logic programs

被引:49
|
作者
Hermenegildo, M [1 ]
Puebla, G
Marriott, K
Stuckey, PJ
机构
[1] Univ Politecn Madrid, Fac Informat, E-28660 Madrid, Spain
[2] Monash Univ, Sch Comp Sci & Software Engn, Clayton, Vic 3168, Australia
[3] Univ Melbourne, Dept Comp Sci & Software Engn, Parkville, Vic 3052, Australia
关键词
languages; abstract interpretation; constraint logic programming; incremental computation; static analysis;
D O I
10.1145/349214.349216
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Global analyzers traditionally read and analyze the entire program at once, in a nonincremental way. However, there are many situations which are not well suited to this simple model and which instead require reanalysis of certain parts of a program which has already been analyzed. In these cases, it appears inefficient to perform the analysis of the program again from scratch, as needs to be done with current systems. We describe how the fixed-point algorithms used in current generic analysis engines for (constraint) logic programming languages can be extended to support incremental analysis. The possible changes to a program are classified into three types: addition, deletion, and arbitrary change. For each one of these, we provide one or more algorithms for identifying the parts of the analysis that must be recomputed and for performing the actual recomputation. The potential benefits and drawbacks of these algorithms are discussed. Finally, we present some experimental results obtained with an implementation of the algorithms in the PLAI generic abstract interpretation framework. The results show significant benefits when using the proposed incremental analysis algorithms.
引用
收藏
页码:187 / 223
页数:37
相关论文
共 50 条
  • [1] Global analysis of constraint logic programs
    DeLaBanda, MG
    Hermenegildo, M
    Bruynooghe, M
    Dumortier, V
    Janssens, G
    Simoens, W
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1996, 18 (05): : 564 - 614
  • [2] A backward analysis for constraint logic programs
    King, A
    Lu, LJ
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2002, 2 (4-5) : 517 - 547
  • [3] Analysis of imperative programs through analysis of constraint logic programs
    Peralta, JC
    Gallagher, JP
    Saglam, H
    [J]. STATIC ANALYSIS, 1998, 1503 : 246 - 261
  • [4] TRANSFORMING NORMAL LOGIC PROGRAMS TO CONSTRAINT LOGIC PROGRAMS
    KANCHANASUT, K
    STUCKEY, PJ
    [J]. THEORETICAL COMPUTER SCIENCE, 1992, 105 (01) : 27 - 56
  • [5] Constraint-based termination analysis of logic programs
    Decorte, S
    De Schreye, D
    Vandecasteele, H
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1999, 21 (06): : 1137 - 1195
  • [6] The semantics of constraint logic programs
    Jaffar, J
    Maher, M
    Marriott, K
    Stuckey, P
    [J]. JOURNAL OF LOGIC PROGRAMMING, 1998, 37 (1-3): : 1 - 46
  • [7] Transforming constraint logic programs
    Bensaou, N
    Guessarian, I
    [J]. THEORETICAL COMPUTER SCIENCE, 1998, 206 (1-2) : 81 - 125
  • [8] Typing constraint logic programs
    Fages, F
    Coquery, E
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2001, 1 : 751 - 777
  • [9] Termination of constraint logic programs
    Ruggieri, S
    [J]. AUTOMATA, LANGUAGES AND PROGRAMMING, 1997, 1256 : 838 - 848
  • [10] Set-based failure analysis for logic programs and concurrent constraint programs
    Podelski, A
    Charatonik, W
    Müller, M
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, 1999, 1576 : 177 - 192