Negation and control in PROLOG (Q1082058)

From MaRDI portal
Revision as of 02:07, 5 March 2024 by Import240304020342 (talk | contribs) (Set profile property.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
scientific article
Language Label Description Also known as
English
Negation and control in PROLOG
scientific article

    Statements

    Negation and control in PROLOG (English)
    0 references
    0 references
    1986
    0 references
    Ways of bringing Prolog closer to the ideals of logic programming are investigated. First various implementations of negations are reviewed (all solutions predicates, delaying until ground, negative unifiers, program transformations,...). Possible pittfals of that variants are illustrated on examples. Delaying until ground technique is found to be generally the most efficient form of negations for database style programming. Recursive predicates are proposed to be transformed, if possible. The second part of the book is devoted to problems concerning adding control facilities to Prolog. A model of execution of MU-Prolog system is given and control primitives (''priority'' and ''wait'') are introduced. An algorithm for generating control information is given and used in preprocessor for logic programs. The appropriate theoretical foundations of logic programming are re-examined and a generalized resolution (Heterogeneous SLD) is defined. It is shown that soundness and completeness still hold. Several of the ideas contained in the paper were implemented in MU- Prolog, the reference manual of which is enclosed as an appendix.
    0 references
    Prolog implementation
    0 references
    negation as failure
    0 references
    control rules
    0 references
    SLD resolution
    0 references
    database style programming
    0 references
    Recursive predicates
    0 references
    control facilities
    0 references
    MU-Prolog
    0 references
    control primitives
    0 references
    logic programs
    0 references
    logic programming
    0 references
    soundness
    0 references
    completeness
    0 references

    Identifiers

    0 references
    0 references
    0 references
    0 references
    0 references
    0 references