A pure meta-interpreter for Flat GHC, a concurrent constraint language

    Research output: Chapter in Book/Report/Conference proceedingChapter

    1 Citation (Scopus)

    Abstract

    This paper discusses the construction of a meta-interpreter of Flat GHC, one of the simplest and earliest concurrent constraint languages. Meta-interpretation has a long history in logic programming, and has been applied extensively to building programming systems, adding functionalities, modifying operational semantics and evaluation strategies, and so on. Our objective, in contrast, is to design the pair of (i) a representation of programs suitable for code mobility and (ii) a pure interpreter (or virtual machine) of the represented code, bearing networked applications of concurrent constraint programming in mind. This is more challenging than it might seem; indeed, meta-interpreters of many programming languages achieved their objectives by adding small primitives into the languages and exploiting their functionalities. A metainterpreter in a pure, simple concurrent language is useful because it is fully amenable to theoretical support including partial evaluation. After a number of trials and errors, we have arrived at treecode, a groundterm representation of Flat GHC programs that can be easily interpreted, transmitted over the network, and converted back to the original syntax. The paper describes how the interpreter works, where the subtleties lie, and what its design implies. It also describes how the interpreter, given the treecode of a program, is partially evaluated to the original program by the unfold/fold transformation system for Flat GHC.

    Original languageEnglish
    Title of host publicationLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Pages138-161
    Number of pages24
    Volume2407
    Publication statusPublished - 2002

    Publication series

    NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Volume2407
    ISSN (Print)03029743
    ISSN (Electronic)16113349

    Fingerprint

    Concurrent
    Bearings (structural)
    Program interpreters
    Computer systems programming
    Logic programming
    Computer programming languages
    Semantics
    Partial Evaluation
    Concurrent Programming
    Trial and error
    Constraint Programming
    Operational Semantics
    Virtual Machine
    Logic Programming
    Programming Languages
    Fold
    Programming
    Imply
    Language
    Evaluation

    ASJC Scopus subject areas

    • Computer Science(all)
    • Theoretical Computer Science

    Cite this

    Ueda, K. (2002). A pure meta-interpreter for Flat GHC, a concurrent constraint language. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2407, pp. 138-161). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 2407).

    A pure meta-interpreter for Flat GHC, a concurrent constraint language. / Ueda, Kazunori.

    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 2407 2002. p. 138-161 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 2407).

    Research output: Chapter in Book/Report/Conference proceedingChapter

    Ueda, K 2002, A pure meta-interpreter for Flat GHC, a concurrent constraint language. in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). vol. 2407, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 2407, pp. 138-161.
    Ueda K. A pure meta-interpreter for Flat GHC, a concurrent constraint language. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 2407. 2002. p. 138-161. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
    Ueda, Kazunori. / A pure meta-interpreter for Flat GHC, a concurrent constraint language. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). Vol. 2407 2002. pp. 138-161 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
    @inbook{88e9c0ddf58b405ca23d6d65c155d4f2,
    title = "A pure meta-interpreter for Flat GHC, a concurrent constraint language",
    abstract = "This paper discusses the construction of a meta-interpreter of Flat GHC, one of the simplest and earliest concurrent constraint languages. Meta-interpretation has a long history in logic programming, and has been applied extensively to building programming systems, adding functionalities, modifying operational semantics and evaluation strategies, and so on. Our objective, in contrast, is to design the pair of (i) a representation of programs suitable for code mobility and (ii) a pure interpreter (or virtual machine) of the represented code, bearing networked applications of concurrent constraint programming in mind. This is more challenging than it might seem; indeed, meta-interpreters of many programming languages achieved their objectives by adding small primitives into the languages and exploiting their functionalities. A metainterpreter in a pure, simple concurrent language is useful because it is fully amenable to theoretical support including partial evaluation. After a number of trials and errors, we have arrived at treecode, a groundterm representation of Flat GHC programs that can be easily interpreted, transmitted over the network, and converted back to the original syntax. The paper describes how the interpreter works, where the subtleties lie, and what its design implies. It also describes how the interpreter, given the treecode of a program, is partially evaluated to the original program by the unfold/fold transformation system for Flat GHC.",
    author = "Kazunori Ueda",
    year = "2002",
    language = "English",
    isbn = "3540439595",
    volume = "2407",
    series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
    pages = "138--161",
    booktitle = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",

    }

    TY - CHAP

    T1 - A pure meta-interpreter for Flat GHC, a concurrent constraint language

    AU - Ueda, Kazunori

    PY - 2002

    Y1 - 2002

    N2 - This paper discusses the construction of a meta-interpreter of Flat GHC, one of the simplest and earliest concurrent constraint languages. Meta-interpretation has a long history in logic programming, and has been applied extensively to building programming systems, adding functionalities, modifying operational semantics and evaluation strategies, and so on. Our objective, in contrast, is to design the pair of (i) a representation of programs suitable for code mobility and (ii) a pure interpreter (or virtual machine) of the represented code, bearing networked applications of concurrent constraint programming in mind. This is more challenging than it might seem; indeed, meta-interpreters of many programming languages achieved their objectives by adding small primitives into the languages and exploiting their functionalities. A metainterpreter in a pure, simple concurrent language is useful because it is fully amenable to theoretical support including partial evaluation. After a number of trials and errors, we have arrived at treecode, a groundterm representation of Flat GHC programs that can be easily interpreted, transmitted over the network, and converted back to the original syntax. The paper describes how the interpreter works, where the subtleties lie, and what its design implies. It also describes how the interpreter, given the treecode of a program, is partially evaluated to the original program by the unfold/fold transformation system for Flat GHC.

    AB - This paper discusses the construction of a meta-interpreter of Flat GHC, one of the simplest and earliest concurrent constraint languages. Meta-interpretation has a long history in logic programming, and has been applied extensively to building programming systems, adding functionalities, modifying operational semantics and evaluation strategies, and so on. Our objective, in contrast, is to design the pair of (i) a representation of programs suitable for code mobility and (ii) a pure interpreter (or virtual machine) of the represented code, bearing networked applications of concurrent constraint programming in mind. This is more challenging than it might seem; indeed, meta-interpreters of many programming languages achieved their objectives by adding small primitives into the languages and exploiting their functionalities. A metainterpreter in a pure, simple concurrent language is useful because it is fully amenable to theoretical support including partial evaluation. After a number of trials and errors, we have arrived at treecode, a groundterm representation of Flat GHC programs that can be easily interpreted, transmitted over the network, and converted back to the original syntax. The paper describes how the interpreter works, where the subtleties lie, and what its design implies. It also describes how the interpreter, given the treecode of a program, is partially evaluated to the original program by the unfold/fold transformation system for Flat GHC.

    UR - http://www.scopus.com/inward/record.url?scp=84867638882&partnerID=8YFLogxK

    UR - http://www.scopus.com/inward/citedby.url?scp=84867638882&partnerID=8YFLogxK

    M3 - Chapter

    SN - 3540439595

    SN - 9783540439592

    VL - 2407

    T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

    SP - 138

    EP - 161

    BT - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

    ER -