## Compositional Logic Programming (2000)

Venue: | In Proceedings of the JICSLP'96 post-conference workshop: Multi-paradigm logic programming, Report 96-28. Technische Universitat |

Citations: | 6 - 1 self |

### BibTeX

@INPROCEEDINGS{McPhee00compositionallogic,

author = {Richard McPhee and Richard Mcphee},

title = {Compositional Logic Programming},

booktitle = {In Proceedings of the JICSLP'96 post-conference workshop: Multi-paradigm logic programming, Report 96-28. Technische Universitat},

year = {2000},

pages = {115--127}

}

### OpenURL

### Abstract

Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the language. In turn, this requirement inhibits the rapid prototyping of specifications in a relational notation. The aim of this thesis is to bridge the gap between the methodology and practice of relational program derivation by realising a compositional style of logic programming that permits specifications to be phrased naturally and executed declaratively.

### Citations

852 |
A formulation of the simple theory of types
- Church
- 1940
(Show Context)
Citation Context ...er logic programming is captured using a generalisation of definite clauses (Nadathur & Miller 1998). The terms of these clauses are described in a higherorder logic, Church’s simple theory of types=-= (Church 1940) -=-in the case of λProlog, and a degree of familiarity with this is assumed in the current section, especially with the typing of terms. Basically, the terms are λ-terms which, informally, have the con... |

334 | Functional logic programming: From theory to Curry
- Hanus
- 2013
(Show Context)
Citation Context ...he logic programming community has also recognised the benefits of compositionality and the issue has been explored in the design of functional logic (Hanus, Kuchen & Moreno-Navarro 1995, Lloyd 1995, =-=Hanus 1994-=-, Moreno-Navarro & Roderiguez-Artalejo 1992, Reddy 1987, Bellia & Levi 1986) and higher-order logic languages (Nadathur & Miller 1988). Moreover, this work focuses on executable languages and even add... |

287 | Abstract interpretation and application to logic programs
- Cousot, Cousot
- 1992
(Show Context)
Citation Context ...e the process of instantiation analysis, originally introduced by (Lindenstrauss & Sagiv 1997), which is a relatively simple application of abstract interpretation of logic programs, due to (Cousot & =-=Cousot 1992)-=-. In the following discussion, we use the terminology introduced in Section 5.3, in particular the abstraction function α from Definition 5.5. In addition, from the standard definition of the Herbran... |

265 | Orderings for term-rewriting systems
- Dershowitz
- 1982
(Show Context)
Citation Context ...indenstrauss & Sagiv 1997, Codish & Taboch 1997, Plümer 1991, Sagiv 1991) has been formulated for classes of literals that share the same canonical structure, with respect to a measure called a norm =-=(Dershowitz 1982).-=- As detailed in this section, norms provide an account of the essential characteristics of a term’s structure. Consequently, norms can be used to determine whether an actual literal shares the same ... |

217 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...s about programs (Backus 1985). In turn, such results facilitate concise verification of the equivalence of programs and permit the derivation of functional programs from mathematical specifications (=-=Bird 1987-=-). Also, because combinators are defined by the user, they can be tailored to specific applications: for example, to parsing (Hutton 1992b), pretty-printing (Hughes 1995), graphical user interfaces (H... |

211 |
Depth-first iterative deepening : an optimal admissible tree search
- Korf
- 1985
(Show Context)
Citation Context ... it suffers from the well-known disadvantage of being space-inefficient. An alternative search strategy that attempts to address the incompleteness of depthfirst search is bounded depth-first search (=-=Korf 1985-=-) which limits the depth to which an SLD-tree may be explored. The depth bound indicates the maximum number of resolution steps that can be performed in any SLD-derivation with the result that only a ... |

184 | Contributions to the theory of logic programming - Apt, Emden - 1982 |

146 | Parallel Programming Using Skeleton Functions - Darlington, Field, et al. - 1993 |

115 |
A unification algorithm for typed λ-calculus
- Huet
- 1975
(Show Context)
Citation Context ...ng a unifier for an arbitrary disagreement set of simply typed λ-terms is undecidable (Huet 1973). Moreover, a unifiable disagreement set may not have a most general unifier. Despite these problems, =-=(Huet 1975-=-) developed a sound and complete method of finding unifiers for arbitrary disagreement sets. By sound, we mean that any substitution computed for a disagreement set by the procedure is a unifier for i... |

99 | A semantic basis for termination analysis of logic programs - Codish, Taboch - 1999 |

98 | Higher-order functions for parsing
- Hutton
- 1992
(Show Context)
Citation Context ...any simple relations can fail to terminate. 2.2.4 An existing implementation of Ruby in LML In this section, we give a brief overview of an existing implementation of a Ruby interpreter (Hutton 1993, =-=Hutton 1992a). -=-We refer to this implementation as the ‘interpreter’ to avoid confusion with the Ruby implementation presented in Chapter 1.s2.2 / Functional programming languages 24 The analogy between circuits ... |

81 | Efficient top-down computation of queries under the well-founded semantics - Chen, Swift, et al. - 1995 |

81 | The design of a pretty-printing library
- Hughes
- 1995
(Show Context)
Citation Context ...rom mathematical specifications (Bird 1987). Also, because combinators are defined by the user, they can be tailored to specific applications: for example, to parsing (Hutton 1992b), pretty-printing (=-=Hughes 1995-=-), graphical user interfaces (Hallgren & Carlsson 1995), or capturing patterns of parallel computation (Darlington, Field, Harrison, Kelly, Sharp, Wu & While 1993). Recently, members of the program de... |

79 | On the occur-check free Prolog programs - Apt, Pellegrini - 1994 |

71 | Un système de communication homme–machine en français. Technical report, Groupe de Intelligence Artificielle Université de Aix-Marseille - Colmerauer, Kanoui, et al. - 1973 |

67 |
Tabulation techniques for recursive programs
- Bird
- 1980
(Show Context)
Citation Context ...onas et al. 1994) is to avoid recomputing previously evaluated literals and, consequently, overcome the problem of entering cyclic evaluations. In analogy with techniques from functional programming (=-=Bird 1980-=-), tabling in logic programming involves recording the evaluation of literals during the course of a computation. The situation is more complicated than in functional programming, however, since logic... |

65 | Automatic termination analysis of logic programs - Lindenstrauss, Sagiv - 1997 |

55 | Declarative Programming in Escher - Lloyd - 1995 |

53 | Curry: A Truly Functional Logic Language - Hanus, Kuchen, et al. - 1995 |

46 | The relation between logic and functional languages: a survey - Bellia, Levi - 1986 |

39 | Beyond depth-first: Improving tabled logic programs through alternative scheduling strategies - Freire, Swift, et al. - 1998 |

35 | A Relational Theory of Datatypes - Backhouse, Hoogendijk, et al. - 1992 |

26 | Designing designing - Jones - 1979 |

25 | Programming with fudgets - Hallgren, Carlsson - 1995 |

15 | Between Functions and Relations in Calculating Programs
- Hutton
- 1993
(Show Context)
Citation Context ...ivation of functional programs from mathematical specifications (Bird 1987). Also, because combinators are defined by the user, they can be tailored to specific applications: for example, to parsing (=-=Hutton 1992-=-b), pretty-printing (Hughes 1995), graphical user interfaces (Hallgren & Carlsson 1995), or capturing patterns of parallel computation (Darlington, Field, Harrison, Kelly, Sharp, Wu & While 1993). Rec... |

13 | Closure and fairness in the semantics of programming logic - Lassen, Maher - 1984 |

12 | Relational Program Derivation and Context–free Language Recognition - Bird, Moor - 1995 |

11 | Formal derivation of csp programs from temporal specifications - Berghammer, Karger - 1995 |

11 | Nilsson: Declarative Logic Programming with Primitive Recursive Relations on Lists
- Hamfelt
- 1996
(Show Context)
Citation Context ...tterns to facilitate efficient computation. An alternative approach to address the shortcomings of the left-to-right computation rule when executing compositional programs was presented by (Hamfelt & =-=Nilsson 1996-=-, Nilsson & Hamfelt 1995) who abandoned explicit recursion in favour of providing structurally recursive combinators over the list data type. To encapsulate recursion of this nature in Prolog, (Hamfel... |

11 |
The undecidability of unification in third-order logic
- Huet
- 1973
(Show Context)
Citation Context ...trary disagreement set has any unifiers and, if so, to provide one such unifier. In a higher-order setting, finding a unifier for an arbitrary disagreement set of simply typed λ-terms is undecidable =-=(Huet 1973-=-). Moreover, a unifiable disagreement set may not have a most general unifier. Despite these problems, (Huet 1975) developed a sound and complete method of finding unifiers for arbitrary disagreement ... |

11 |
Control generation for logic programs
- Luttringhaus-Kappel
- 1993
(Show Context)
Citation Context ...rams. Despite the widespread use of the left-to-right computation rule in the logic programming community, its limitations have been acknowledged by the introduction of coroutining computation rules (=-=Lüttringhaus-Kappel 1993-=-, Naish 1992, Naish 1985) in languages such as NU-Prolog (Thom & Zobel 1987). Coroutining rules attempt to overcome the inflexibility of the left-to-right one by selecting literals in a goal depending... |

9 |
From function level semantics to program transformation and optimization
- Backus
- 1985
(Show Context)
Citation Context ...s of program composition. Apart from the aesthetic benefits and the increased readability of programs, employing combinators encourages the formulation of general mathematical results about programs (=-=Backus 1985-=-). In turn, such results facilitate concise verification of the equivalence of programs and permit the derivation of functional programs from mathematical specifications (Bird 1987). Also, because com... |

9 | Relational programming - MacLennan - 1983 |

7 | Designing arithmetic circuits by refinement in - Jones, Sheeran - 1994 |

6 |
Loop Checking
- Bol
- 1991
(Show Context)
Citation Context ...rminings3.5 / Using coroutining to improve the efficiency of fair SLD-resolution 67 whether an arbitrary SLDF-tree is finite is undecidable, the check is approximated using loop detection techniques (=-=Bol 1991-=-) to test for infinite recursion. The resolution of the current literal is simulated using C0 as the call set in the coroutining computation rule. Essentially, a loop is assumed to exist in the SLDF-t... |

5 |
Representing Logic Program Schemata in λ-Prolog
- Gegg-Harrison
- 1995
(Show Context)
Citation Context ...e higher-order language λProlog (Nadathur & Miller 1988) which allows higher-order programs to be constructed naturally, without the need for extra-logical predicates. This advantage over Prolog led =-=(Gegg-Harrison 1995)-=- to propose a general characterisation of structural recursion in λProlog, suitable for certain common data types, through the provision of a handful of combinators. Although these combinators form a... |

4 |
Foundations of Logic Programming, second edn
- Lloyd
- 1987
(Show Context)
Citation Context ...guages presented in this thesis can be extended to encompass normal programs—those that may contain negative literals—by implementing negation-as-failure through the use of a “safe” computatio=-=n rule (Lloyd 1987-=-). A safe computation rule selects negative literals for resolution only when they are ground so as to avoid introducing unsound answer substitutions. A fair computation rule can be extended with the ... |

2 | A memory with a real-time garbage collector for implementing logic programming languages - Bekkers, Canet, et al. - 1986 |

2 | Combinatory logic programming - Lipton - 1994 |

1 | A relational theory of datatypes, Available via anonymous ftp from ftp://ftp.win.tue.nl in directory pub/math.prog.construction - P - 1992 |

1 | Combinatory forms for equational programming: Instances, unification and narrowing - Bellia, Bugliesi - 1990 |

1 |
The Design and Implementation of a Relational Programming Language
- Cattrall
- 1993
(Show Context)
Citation Context ...ackhouse & Hoogendijk 1993, Jones & Sheeran 1990, Schmidt & Ströhlein 1988), no language exists in which the relational expressions being derived can be directly executed. Two notable exceptions are =-=(Cattrall 1993-=-, Hutton 1992a), although both of these are more concerned with executing certain types of programs than with the prototyping of specifications. The absence of a widely accepted notion of relational c... |

1 | The circuit that was too lazy to fail - Collins - 1997 |

1 | Catalan numbers, their generalisation, and their uses - Hilton - 1991 |

1 |
Règles d’Evaluation Equitables en Programmation Logique, PhD thesis, Laboratoire d’Informatique Fondamentale de Lille
- Janot
- 1991
(Show Context)
Citation Context ...opposed to Prolog’s depth-first (left-to-right) one, results in efficiency behaviour that is difficult to predict. Moreover, a prior attempt to rectify the efficiency problems of fair SLD-resolution=-= (Janot 1991-=-) fails to generalise to compositional programs. This thesis contributes two novel implementations of resolution that provide better support for compositional programming than existing techniques. The... |

1 | Checking termination of queries to logic programs, Available from http://www.cs.huji.ac.il/ naomil - Lindenstrauss - 1996 |