From Interpreter to logic Engine by Defunctionalization

Dariusz Biernacki, Olivier Danvy

    Research output: Contribution to book/anthology/report/proceedingBook chapterResearch

    Abstract

    Starting from a continuation-based interpreter for a simple logic programming language, propositional Prolog with cut, we derive the corresponding logic engine in the form of an abstract machine. The derivation originates in previous work (our article at PPDP 2003) where it was applied to the lambda-calculus. The key transformation here is Reynoldss defunctionalization that transforms a tail-recursive, continuation-passing interpreter into a transition system, i.e., an abstract machine. Similar denotational and operational semantics were studied by de Bruin and de Vink (their article at TAPSOFT 1989), and we compare their study with our derivation. Additionally, we present a direct-style interpreter of propositional Prolog expressed with control operators for delimited continuations.
    Original languageEnglish
    Title of host publicationLogic Based Program Synthesis and Transformation : 13th International Symposium, LOPSTR 2003, Uppsala, Sweden, August 25-27, 2003, Revised Selected Papers
    EditorsMaurice Bruynooghe
    Number of pages17
    PublisherSpringer
    Publication date2004
    Pages143-159
    ISBN (Print)978-3-540-22174-6
    DOIs
    Publication statusPublished - 2004
    EventInternational Symposium on Logic Based Program Development and Transformation (LOPSTR '03) - Uppsala, Sweden
    Duration: 25 Aug 200427 Aug 2004

    Conference

    ConferenceInternational Symposium on Logic Based Program Development and Transformation (LOPSTR '03)
    Country/TerritorySweden
    CityUppsala
    Period25/08/200427/08/2004
    SeriesLecture Notes in Computer Science
    Volume3018

    Fingerprint

    Dive into the research topics of 'From Interpreter to logic Engine by Defunctionalization'. Together they form a unique fingerprint.

    Cite this