Constraint Logic Programming with Dynamic Scheduling: A Semantics Based on Closure Operators

The first logic programming languages, such as Prolog, used a fixed left-to-right atom scheduling rule. Recent logic programming languages, however, provide more flexible scheduling in which there is a default computation rule such as left-to-right but in which some calls are dynamically “delayed” u...

Full description

Saved in:
Bibliographic Details
Published in:Information and computation Vol. 137; no. 1; pp. 41 - 67
Main Authors: Falaschi, Moreno, Gabbrielli, Maurizio, Marriott, Kim, Palamidessi, Catuscia
Format: Journal Article
Language:English
Published: San Diego, CA Elsevier Inc 25.08.1997
Elsevier
Subjects:
ISSN:0890-5401, 1090-2651
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:The first logic programming languages, such as Prolog, used a fixed left-to-right atom scheduling rule. Recent logic programming languages, however, provide more flexible scheduling in which there is a default computation rule such as left-to-right but in which some calls are dynamically “delayed” until their arguments are sufficiently instantiated to allow the call to run efficiently. Such languages include constraint logic programming languages, since most implementations of these languages delay constraints which are “too hard.” From the semantic point of view, the fact that an atom must be delayed under certain conditions, causes the standard semantics of (constraint) logic programming to be no longer adequate to capture the meaning of a program. In our paper we attack this problem and we develop a denotational semantics for constraint logic programming with dynamic scheduling. The key idea is that the denotation of an atom or goal is a set of closure operators, where different closure operators correspond to different sequences of rule choices.
ISSN:0890-5401
1090-2651
DOI:10.1006/inco.1997.2638