5 research outputs found

    Supervising Offline Partial Evaluation of Logic Programs using Online Techniques

    No full text
    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 help the development and maintenance of correct annotations by identifying 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 built-in errors in Prolog source code

    Partial evaluation of machine code

    Full text link

    Self-Applicable Online Partial Evaluation of the Pure Lambda Calculus

    No full text

    How ToHave Your Cake and Eat It, Too: Self-Applicable Online Partial Evaluation

    No full text
    Abstract. We propose a hybrid approach to partial evaluation to achieve self-application of realistic online partial evaluators. Whereas the o ine approach to partial evaluation leads to e cient specializers and self-application, online partial evaluators perform better specialization at the price of e-ciency. Moreover, no online partial evaluator for a realistic language has been successfully self-applied. We present a binding-time analysis for an online partial evaluator for a higher-order subset of Scheme. The analysis distinguishes between static, dynamic,andunknown binding times. Thus, it makes some reduce/residualize decisions o ine while leaving others to the specializer. The analysis does not introduce unnecessary generalizations. We have implemented the binding-time analysis and an online specializer to go with it. After some standard binding-time improvements, our partial evaluator successfully self-applies. Moreover, it is amenable to e ective specialization with an o ine partial evaluator
    corecore