SUMMARY: CLP meta interpreters 
Author Message
 SUMMARY: CLP meta interpreters


Quote:
Kostka = me) writes:
> Does anyone provide meta interpreters for CLP to toy around with?

[...]

I have been asked to post a summary of the responses. This is what I
got:

========================================================================

gave me the tip to try contacting Prof. Dr. Geske of the "Institut fuer
Kuenstliche Intelligenz" in (East) Berlin. They have a CLP interpreter
based on Turbo Prolog.


it may be difficult to reach him as they are very new to email in East
Berlin. (I sent him email but got no response.)

========================================================================

Volker Kuechenhoff of the European Computer Industry Research Centre

recommended to look at some papers of the PDK workshop (PDK'91 - Int.
Workhop on Processing Declarative Knowledge, Kaiserslautern, Germany,
July 1991, Ed. M.M.Richter und H. Boley, to appear in the Springer
Lecture Notes on AI).

In particular, he mentioned:

PCPL - Prolog Constraint Processing Library by Stefan Fricke, Manfred
Hein.

FIDO: Exploring Finite Domain Consistency Techniques in Logic Programming

(In case this would not help, he recommends to write a meta interpreter
oneself in order to become able to really understand it.)

========================================================================

One individual told me that his company did a meta interpreter with
finite domains and integer arithmetics on top of Sicstus Prolog. He did
not want this information to be posted to the net without prior
permission of his boss (for which I didn't ask).

========================================================================


offered a constraint solver (linear arithmetic constraints, non-linear
constraints are delayed) embedded in Prolog. It is supposed to emulate
CLP(R). He thinks that currently his program is not presentable enough
to make it public domain.

========================================================================

Last, but certainly not least:


"... it all depends on whether you want access to a CLP system to apply
it to some particular problem; or whether you are interested in
constructing a CLP system for educational/research purposes.

There are now several commercial or public-domain CLP systems, each
dealing with specific computation domains (rationals, reals, Booleans,
integers, ...).  If you request so, I could hint at some, but this
could only be a partial point of view. These systems are typically
written in imperative languages, and therefore do not qualify as
"metainterpreters" !

If, on the other hand, you would like to construct your own CLP
interpreter on top of a Prolog system, then there is a small literature
on the topic.  Mostly, CLP interpreters written in Prolog deal with the
implementation of finite-domain extensions (as other computation
domains such as rationals require algebraic manipulations for which
Prolog, er, might not be the best tool).

Finally, note that some publically available Prolog systems provide the
basic functionalities (coroutining, attributed variables, ...) that are
required to implement a decent finite-domain system on top of Prolog.
SEPIA-Prolog is, I think, a good candidate for this (you can get in

obtain this system). I for one have been using SEPIA-Prolog as an
implementation basis for a new CLP-like computation model."

Thierry recommended the following literature (list by no means
exhaustive):

Heintze, N. and Michaylov, S. and Stuckey, P. and Yap, R.
On Meta-Programming in CLP(R),
Proceedings of the North-American Conference on Logic Programming
(NACLP'89), pp 52-68, 1989

De Schreye, D. and Pollet, D. and Ronsyn, J. and Bruynooghe, M.
Implementing Finite-domain Constraint Logic Programming on Top of a
PROLOG-System with Delay-mechanism,
ESOP Proceedings, pp 106-117, Copenhagen, Denmark, May, 1990

Thierry:

"On the topic of SEPIA (Standard ECRC Prolog Integrating Applications),
which as I said can be used (and is indeed being intensively used at
ECRC !) to construct efficient variations on the "finite-domain
propagation" theme, I think it would be fair to include the following
comments from its main designer, Micha Meier. Sepia is available from

---

SEPIA is a Prolog system, based on a WAM compiler, that offers all
basic functionalities that are necessary or useful to implement e.g.
local consistency techniques. The functionalities are

        - Attributed variables, called metaterms. They allow to store
          additional information with a variable, which can e.g.
          represent a list of allowed values for that variable.

        - Declarative coroutining, which allows to specify rather
          complex conditions for a goal to be suspended; it is e.g.
          possible to suspend a goal and wake it as soon as any
          variable that occurs in it or its attribute is updated.

It is fairly straightforward to represent constraints as suspended
goals and variable domains as metaterms to achieve constraints
propagation over finite domains. Unlike some other systems, a
constraint can be woken not only by instantiating a variable (which is
necessary for \= [disequality]) but also when its domain is modified
(needed e.g. for arithmetic equalities and inequalities). It is also
more efficient than a metainterpreter, and easily modifiable (once you
write it, of course)."

========================================================================

Thanks to all of the above.

Bernd

---------------------------------------------------


Dolivostrasse 15            Voice   : ++49-6151-869-862
D-6100 Darmstadt, Germany   Fax     : ++49-6151-869-818



Sat, 07 May 1994 00:51:55 GMT  
 SUMMARY: CLP meta interpreters

Quote:
>> FIDO: Exploring Finite Domain Consistency Techniques in Logic Programming

>> (In case this would not help, he recommends to write a meta interpreter
>> oneself in order to become able to really understand it.)

**********  WRONG !!!!!!  ***********

We have a
        * Meta-Interpreter
        * a horizontal Compiler
        for Finite Domains.

        (A WAM based implementation is currently in work.)

        The horizontal compiler (into SEPIA) is available from:
        minnehaha.rhrk.uni-kl.de
        in the directory:
                pub/languages/fido/fido2/*
        The Meta-interpreter (FIDO-1) will be made available in the next weeks.




Mon, 09 May 1994 03:19:02 GMT  
 SUMMARY: CLP meta interpreters

Quote:
>>> FIDO: Exploring Finite Domain Consistency Techniques in Logic Programming

>>> (In case this would not help, he recommends to write a meta interpreter
>>> oneself in order to become able to really understand it.)

> **********  WRONG !!!!!!  ***********

Sorry, here my summary gave a wrong impression. The latter remark was not
aimed at the FIDO paper or work.

Quote:
>    The Meta-interpreter (FIDO-1) will be made available in the next weeks.

Sounds very interesting. A meta interpreter on top of what?

Bernd Kostka

---------------------------------------------------


Dolivostrasse 15            Voice   : ++49-6151-869-862
D-6100 Darmstadt, Germany   Fax     : ++49-6151-869-818



Tue, 10 May 1994 17:46:55 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. clp and meta interpreters ?

2. CLP meta interpreters

3. meta-circular-meta-interpreters (long)

4. CLP Interpreter/Compiler

5. Meta circular Interpreter

6. Problem with using predicate_property in a meta interpreter.

7. meta interpreter and freeze

8. TABLING with meta-interpreter

9. meta-interpreter for OLDT

10. negation as failure in meta-interpreters

11. random meta-interpreter

12. Help.....Prolog Meta Interpreter

 

 
Powered by phpBB® Forum Software