Results 1 -
2 of
2
The Compilation of Prolog and its Execution with MALI
, 1993
"... We present a compiled implementation of Prolog that uses the abstract memory MALI for representing the execution state. Prolog is a logic programming language allowing a more general clause form than Standard Prolog 's (namely hereditary Harrop formulas instead of Horn formulas) and using simply ty ..."
Abstract
-
Cited by 11 (8 self)
- Add to MetaCart
We present a compiled implementation of Prolog that uses the abstract memory MALI for representing the execution state. Prolog is a logic programming language allowing a more general clause form than Standard Prolog 's (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed -terms as a term domain instead of first order terms. The augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable in a very disciplined way. The new term domain has a semi-decidable and infinitary unification theory, and it introduces the need for a fi-reduction operation at run-time. MALI is an abstract memory that is suitable for storing the search-state of depth-first search processes. Its main feature is its efficient memory management. We have used an original Prolog-to-C translation along which predicates are transformed into functions operating on continuations for handling failure and success in unifications, and change...
Join Evaluation Schemata for Constraint Handling Rules (CHR)
, 1998
"... CHR is a committed-choice language consisting of guarded rules that rewrite constraints into simpler ones until they are solved. CHR can define both simplification of and propagation over user-defined constraints. Simplification replaces constraints by simpler constraints while preserving logical eq ..."
Abstract
- Add to MetaCart
CHR is a committed-choice language consisting of guarded rules that rewrite constraints into simpler ones until they are solved. CHR can define both simplification of and propagation over user-defined constraints. Simplification replaces constraints by simpler constraints while preserving logical equivalence. Propagation adds new constraints which are logically redundant but may cause further simplification. The constraints acted upon by CHR are represented in a constraint store, much like tuples in a conventional data base. The evaluation of the condition part of CHR consists of finding sets of tuples in the constraint store which match the heads of a rule, resembling the relational algebra join operation. In the binding environments of these tuple sets, the applicability of the rules is decided by evaluating the guards. Rule applications may add and remove constraints. The anticipated interaction under an immediate update view leads to a small number of prototypical join evaluation c...

