Supervising offline partial evaluation of logic programs using online techniques

被引:5
|
作者
Leuschel, Michael [1 ]
Craig, Stephen-John [1 ]
Elphick, Dan [1 ]
机构
[1] Univ Dusseldorf, Inst Informat, D-4000 Dusseldorf, Germany
关键词
D O I
10.1007/978-3-540-71410-1_5
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
A major impediment for more widespread use of offline partial evaluation is the difficulty of obtaining and maintaining annotations for larger, realistic programs. Existing automatic binding-time analyses still only have limited applicability and annotations often have to be created or improved and maintained by hand, leading to errors. We present a technique to help overcome this problem by using online control techniques which supervise the specialisation process in order to detect such errors. We discuss an implementation in the LOGEN system and show on a series of examples that this approach is effective: very few false alarms were raised while infinite loops were detected quickly. We also present the integration of this technique into a web interface, which highlights problematic annotations directly in the source code. A method to automatically fix incorrect annotations is presented, allowing the approach to be also used as a pragmatic binding time analysis. Finally we show how our method can be used for efficiently locating errors with built-ins inside Prolog source code.
引用
收藏
页码:43 / +
页数:3
相关论文
共 50 条
  • [1] Fast offline partial evaluation of logic programs
    Leuschela, Michael
    Vidal, German
    [J]. INFORMATION AND COMPUTATION, 2014, 235 : 70 - 97
  • [2] Fast Offline Partial Evaluation of Large Logic Programs
    Leuschel, Michael
    Vidal, German
    [J]. LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2009, 5438 : 119 - +
  • [3] Offline partial evaluation can be as accurate as online partial evaluation
    Christensen, NH
    Glück, R
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2004, 26 (01): : 191 - 220
  • [4] An introduction to online and offline partial evaluation using a simple flowchart language
    Hatcliff, J
    [J]. PARTIAL EVALUATION: PRACTICE AND THEORY, 1999, 1706 : 20 - 82
  • [5] Partial evaluation of functional logic programs
    Alpuente, M
    Falaschi, M
    Vidal, G
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (04): : 768 - 844
  • [6] Online-and-offline partial evaluation: A mixed approach
    Sumii, E
    Kobayashi, N
    [J]. ACM SIGPLAN NOTICES, 1999, 34 (11) : 12 - 21
  • [7] Partial evaluation of lazy functional logic programs
    Iranzo, PJ
    [J]. AI COMMUNICATIONS, 2003, 16 (02) : 121 - 123
  • [8] Partial-evaluation techniques for concurrent programs
    Marinescu, M
    Goldberg, B
    [J]. ACM SIGPLAN NOTICES, 1997, 32 (12) : 47 - 62
  • [9] A residualizing semantics for the partial evaluation of functional logic programs
    Albert, E
    Hanus, M
    Vidal, G
    [J]. INFORMATION PROCESSING LETTERS, 2003, 85 (01) : 19 - 25
  • [10] Forward slicing of functional logic programs by partial evaluation
    Silva, Josep
    Vidal, German
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2007, 7 : 215 - 247