Algebraic and logical semantics for CLP languages with dynamic scheduling

The first logic programming languages, such as Prolog, used a fixed left-to-right atom scheduling rule. Unfortunately, this meant that programs written in a clean, declarative style were often very inefficient, only terminated when certain inputs were fully instantiated or “ground,” and (if negation...

Full description

Saved in:
Bibliographic Details
Published in:The journal of logic programming Vol. 32; no. 1; pp. 71 - 84
Main Author: Marriott, Kim
Format: Journal Article
Language:English
Published: Elsevier Inc 1997
ISSN:0743-1066, 1873-5789
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. Unfortunately, this meant that programs written in a clean, declarative style were often very inefficient, only terminated when certain inputs were fully instantiated or “ground,” and (if negation was used) produced wrong results. For this reason, nearly all recent logic programming languages provide more flexible scheduling in which computation generally proceeds left-to-right but in which some calls are dynamically “delayed” until their arguments are sufficiently instantiated to allow the call to run efficiently. Despite the increasing practical importance of logic programming languages with dynamic scheduling, relatively little attention has been paid to their semantics. We lift the standard algebraic and logical soundness and completeness results for success and finite failure for constraint logic programs to constraint logic programming languages with dynamic scheduling. The proofs are quite simple and essentially rely on treating the delayed calls as part of the answer constraint.
Bibliography:ObjectType-Article-2
SourceType-Scholarly Journals-1
ObjectType-Feature-1
content type line 23
ISSN:0743-1066
1873-5789
DOI:10.1016/S0743-1066(96)00127-6