PARLOG: parallel programming in logic
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Concurrent Prolog: A Progress Report
Computer
Proceedings of the 4th conference on Logic programming '85
Concurrent constraint programming
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design of the kernel language for the parallel inference machine
The Computer Journal - On concurrent logic programming
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Janus: a step towards distributed constraint programming
Proceedings of the 1990 North American conference on Logic programming
Communications of the ACM
Moded flat GHC and its message-oriented implementation technique
New Generation Computing
Programming languages for distributed applications
New Generation Computing
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Concurrent PROLOG: Collected Papers
Concurrent PROLOG: Collected Papers
The Logic Programming Paradigm: A 25-Year Perspective
The Logic Programming Paradigm: A 25-Year Perspective
Higher-Order Logic Programming
Proceedings of the Third International Conference on Logic Programming
Experiences with Strong Moding in Concurrent Logic/Constraint Programming
PSLS '95 Proceedings of the International Workshop on Parallel Symbolic Languages and Systems
A Portable and Efficient Implementation of KL1
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
A relational language for parallel programming
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
LISP 1.5 Programmer's Manual
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
Hi-index | 0.00 |
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 meta-interpreter 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.