| P.M. Hill and J.W. Lloyd. The G odel Programming Language. MIT Press, Cambridge, MA, 1994. |
....language LISP, and list predicates, such as member and append, are among the rst predicates that are taught to students in logic programming language courses. Sets are the main data structure used in speci cation languages (e.g. in Z [26] and in high level declarative programming languages [5, 13, 19, 17]; but also imperative programming languages may take advantage from the set data abstraction (e.g. SETL [27] Multisets (often called bags in the literature) emerge as the most natural data structure in several interesting applications. For instance, solutions to the equation x 2x 1 = 0 ....
P. M. Hill and J. W. Lloyd. The Godel Programming Language. The MIT Press, Cambridge, Mass., 1994.
....and economy of concepts, which makes some fall in love with the language, but confuses many newcomers, and prompts others not to take it seriously. More recent attempts at better logic programming languages have taken quite radical measures, like adding strict typing and moding (G odel [6], Mercury [9] integrating logic and functional styles (Curry [5] Mercury) or dismissing most of the Prolog heritage, keeping essentially logical variables in a host language that concentrates on other main aspects (Oz [10] Ilog solver [8] The enhancements presented in this paper are not ....
P. Hill and J. Lloyd. The Godel Programming Language. MIT Press, 1994.
....49 B Matrix for Term Propagation 52 C Auxiliary Proofs for Termination of general aci 54 D Matching of Bound Set Terms 57 1 Introduction The problem of providing algorithms for the manipulation of set structures has received increasing attention in recent years. Various declarative languages [16, 18, 33, 25, 52, 13, 11, 43] rely on sets, or structures with similar properties, as rst class objects. Similarly, various proposals dealing with computability properties and algorithmic manipulation of set structures have recently appeared in research areas such as automated deduction [48] and database systems [37] ....
....terms with di erent main functors, like in fg 3 (X; Y; Z) fg 2 (a; b) Representation (2) has been frequently used in the context of logic languages embedding sets. It is used for instance in [31] in [44] where with is called scons, in the language flogg [16] and also in the G odel language [25]. 26] uses the [ operator but its behavior is that of the with operator of approach (2) Representation (2) is also adopted, for instance, in [46] Representation (1) on the contrary, has been often used when dealing with the problem of set uni cation on its own [9, 38] where set uni cation ....
[Article contains additional citation context not shown here]
Hill, P.M., and Lloyd, J.W. The Godel Programming Language. The MIT Press, Cambridge, Mass., 1994.
....logic languages can be ef ciently implemented in a very similar way to (pure) functional or (pure) logic languages. Curry is a functional logic programming language that combines the best ideas of existing declarative languages such as Haskell [6] and SML [9] functional languages) G odel [5] and Prolog [10] logic languages) and ALF [7] Babel [8] and TOY [3] functional logic languages) in an elegant, practical, comprehensive, and seamless way. More speci cally, Curry includes higher order features, a type system, a module system, modern evaluation strategies, non determinism, ....
....The solutions are shown as they are found, showing the substitution (if any) the computed expression (if any) and the time spent (in ms) to compute each solution. Here are some of the functional like goals which are accepted and evaluated by the interpreter for the program lists.curry. append [1,2,3,4,5] [6,7,8,9,0] Solution: 1,2,3,4,5,6,7,8,9,0] 0 ms rev [1,2,3,4,5,6,7,8,9,0] Solution: 0,9,8,7,6,5,4,3,2,1] 140 ms member 1 [1,2,3,4,5,6,7,8,9,0] Solution: True ] 40 ms Due to the functional logic semantics included in UPV Curry, you can also evaluate expressions containing ....
[Article contains additional citation context not shown here]
P. Hill and J.W. Lloyd. The Godel Programming Language. The MIT Press, Cambridge, MA, 1994.
....de ned in [8] in Metalogic Programming) and the re ection rule of the FOL system [36] Its clear that, if the object theory and the meta theory are completely distinct, then (1) cannot be stated in any of the two theories. Examples of such approaches are [36, 17] in Arti cial Intelligence) and [21, 22] (in Metalogic Programming) A second observation about (1) concerns its role namely, how and to which purpose the re ection principle is used. A rst possibility is that (1) has a descriptive role. This means that (1) is a statement that is true for a speci c pair of object and metatheory. In ....
P. M. Hill and J.W. Lloyd. The Godel Programming Language. Technical Report CSTR 92-27, University of Bristol, Dept. Computer Science, 1992.
....point of view, where typing is an abstraction of the semantics. From the descriptive point of view, one aims at recognizing, for instance, that the rst argument of predicate append=3 is a list in all its answers. Several systems implement the prescriptive view, e.g. G odel, Mercury, Prolog [HL94, SHC 96, MN86, MNPS91] and in fact, they do not diverge too much as far as prescriptive typing is considered. Prolog is more closely related to a logical vision of types a la Church , and we will follow it in the technical sections. 2.2 Static analysis Static analysis aims at computing ....
....The literature on Prolog and types also does not help. e.g. Mycroft and O Keefe adopt this convention silently (it is in their de nition, but it is not explained [MO84] whereas Hanus argues it is unnatural [Han89] However, several real size logic programming systems, e.g. G odel [HT92, HL94] 18 Mercury [SHC 96] implement the head condition. Recently, Deransart and Smaus [DS00] have proposed a semantic presentation of this property. They also have proposed a less restrictive variant of it. On the Prolog side, Brisset and Ridoux adopt these conventions in their Prolog ....
[Article contains additional citation context not shown here]
P.M. Hill and J.W. Lloyd. The Godel Programming Language. MIT Press, 1994.
....by means of interleaving. The use of a non xed selection rule in combination with the above delay declarations is thus an example of a dynamic selection rule. Dynamic selection rules have proven to be useful in a number of applications; among other things, they allow one to model co routining [2, 3] and parallel executions [4] A dynamic selection rule provides the programmer with a exible control over the computation which can be used to improve the eciency of programs, prevent run time errors and enforce termination [5, 3] Dynamic selection rules are usually implemented by means of a ....
....at GHC [7] uses an extra condition on the input positions, which is extremely similar to the concept of input consuming derivation step we refer to in the sequel: The resolution of an atom with a de nition might not instantiate the input arguments of the resolved atom. On the other hand, G odel [2] and Eclipse [8] use delay declarations like the above ones, and SICStus Prolog [9] employs block declarations (which are strictly less expressive than delay declarations) Both delay and block declarations check the partial instantiation of some arguments of calls. Limitations of the Approach ....
P. M. Hill and J. W. Lloyd. The Godel programming language. The MIT Press, 1994.
....A Decision Procedures for Ground General Uni cation 49 B Matrix for Term Propagation 52 C Matching of Bounded Set Terms 54 3 1 Introduction The problem of providing algorithms for the manipulation of set structures has received increasing attention in recent years. Various declarative languages [15, 30, 22, 48, 12] rely on sets, or structures with similar properties, as rst class objects. Similarly, a variety of works dealing with computability properties and algorithmic manipulation of set structures have recently appeared in contexts like automated deduction [44] and database systems [34] Additionally, ....
....the uni ability of set terms with di erent main functors, like in fg 3 (X; Y; Z) fg 2 (a; b) Representation (2) has been frequently used in the context of logic languages embedding sets. It is used for instance in [28] in [40] where with is called scons, and also in the G odel language [22]. 24] uses the [ operator but its behavior is that of the with operator of approach (2) Representation (2) is also adopted, for instance, in [42] Representation (1) on the contrary, is often used when dealing with the problem of set uni cation on its own [9, 35] where set uni cation is dealt ....
[Article contains additional citation context not shown here]
Hill, P. M., and Lloyd, J. W. The Godel Programming Language. The MIT Press, Cambridge, Mass., 1994.
....in a di erent mode at each run. The requirement of input consuming derivations is trivially met for LDderivations of a well moded query and program, 4 since the leftmost atom in a well moded query is ground in its input positions. It can also be ensured by using delay declarations as in G odel [14] that require the input arguments of an atom to be ground before this atom can be selected. Moreover, it might be ensured using guards as in GHC [25] Finally, it can be ensured using delay declarations that check for partial instantiation of the input arguments, such as the block declarations of ....
....the results of this paper, we only have to impose this depth bound for the predicates that are not atomterminating. For the atom terminating predicates, we can save the overheads involved in this technique. Thirdly, we could use delay declarations as they are provided for example in G odel [14]. For the atom terminating predicates, it is sucient to check for partial instantiation of the input positions using a DELAY : UNTIL NONVAR : declaration. For the other predicates, it must be ensured that the input positions are ground using a DELAY : UNTIL GROUND : declaration. ....
P. M. Hill and J. W. Lloyd. The Godel Programming Language. MIT Press, 1994.
....ID logic notations to denote these logical expressions, and to denote the type declarations. To represent logical expressions, we will reify the logical connectors, quanti ers and predicates; i.e. we will represent them by functors in our language. Also, similarly as in the language Goedel [5], we use the ground representation of variables in expressions to be typed. We will represent the variables as constants preceeded by the symbol v; i.e. we write the variable A as vA . As in Goedel, a decarative predicate var can be de ned. We assume that it is de ned by a table of atoms of the ....
Patricia Hill and John W. Lloyd. The Godel Programming Language. MIT Press, 1994.
....by imposing an ordering on the terms in the narrowing tree [AFV96b] 2.3.3 The Escher Language The Escher language, a rewriting based functional logic language [Llo95, Llo] originally motivated this study. At first the Escher language was derived from the Godel logic programming language [HL94] which was extended with higher order features, function definitions, and equations instead of statements. Recently, the focus of Escher has changed; the language is now an extension of Haskell, sharing its syntax and structure. The Escher language offers powerful features in a declarative ....
....and unmarked nodes, until the partial evaluator terminates, at which point all nodes of the m tree are marked. The definitions of the original program 5. 1 Implementation of the Constraint based Partial Evaluator 127 are read from the compiled Escher program and stored in a table data structure [HL94] indexed by the function name and arity. The iteration between the extend function and the ff operator (implemented by the generalise predicate below) is the predicate PE. A counter ch indicates the number of unmarked leaf nodes that were added to the m tree in the last iteration. If this ....
P.M. Hill and J.W. Lloyd. The G odel Programming Language. MIT Press, Cambridge, MA, 1994.
....by means of interleaving. The use of a non xed selection rule in combination with the above delay declarations is thus an example of dynamic selection rule. Dynamic selection rules have proven to be useful in a number of applications; among other things, they allow one to model co routining [11, 15] and parallel executions [16] A dynamic selection rule provides the programmer with a exible control over the computation which can be used to improve the eciency of programs, prevent run time errors and enforce termination [3, 15] Dynamic selection rules are usually implemented by means of a ....
....at GHC [22] uses an extra condition on the input positions, which is extremely similar to the concept of input consuming derivation step we refer to the sequel: The resolution of an atom with a de nition might not instantiate the input arguments of the resolved atom. On the other hand, G odel [11] and Eclipse [23] use delay declarations like the above ones, and SICStus Prolog [12] employs block declarations (which are strictly less expressive than delay declarations) Both delay and block declarations check the partial instantiation of some arguments of calls. Limitations of the Approach ....
P. M. Hill and J. W. Lloyd. The Godel programming language. The MIT Press, 1994.
....a set of clauses and a set of delay declarations, one for each of its predicate symbols. A delay declaration associated with an n ary predicate symbol p has the form delay p(t 1 ; t n ) until Cond(t 1 ; t n ) where Cond (t 1 ; t n ) is a formula in some assertion language [10]. A derivation is delay respecting if an atom p(t 1 ; t n ) is selected only if Cond(t 1 ; t n ) is satis ed. In particular, we consider delay declarations of the form delay p(X 1 ; Xn ) until nonvar(X i 1 ) nonvar(X i k ) where 1 i 1 : i k n. 1 ....
P. M. Hill and J. W. Lloyd. The Godel Programming Language. The MIT Press, 1994.
....constructor in a list of list of numbers [ 3] This paper is based on a previous work done with Massimo Paltrinieri [4] while the second author was at CNRS, Ecole Normale Sup erieure, Paris. The implementation described in this paper is available from [2] The type system of Mycroft O Keefe [13, 11, 7] is an adaptation to logic programming of Damas Milner s type system with parametric polymorphism developed initially for the functional programming language ML. In this system, types are rst order terms, type variables inside types, like in list( express type parameters, so that programs de ....
....types are rst order terms, type variables inside types, like in list( express type parameters, so that programs de ned over data structures of type list( can be used polymorphically over any list of elements of some type . Such a type system for Prolog is implemented in the systems G odel [7] and Mercury[19] for example. The exibility of parametric polymorphism is however by far insucient to handle properly coercions between constraint domains, such as e.g. boolean as natural numbers, or lists as Herbrand terms, and does not support the meta programming facilities of logic ....
P. Hill and J. Lloyd. The Godel programming language. MIT Press, 1994.
....Author s address: Dept. of Computer Science, P.O. Box 751, Portland, OR 97207, antoy cs.pdx.edu. 2 1 Introduction We describe the implementation of an advanced narrowing strategy, needed narrowing [3] in Prolog. Our implementation has been deployed in an extension [4] of the G odel compiler [12], which translates G odel source code into Prolog source code. Our implementation is high level, portable, similar in scope to previously proposed implementations [1, 5, 6, 13, 15, 17] and more ecient. Narrowing is a widely used procedure for performing functional computations in a logic ....
P. M. Hill and J. W. Lloyd. The Godel Programming Language. MIT Press, 1993.
....gives some insight into the design of logic languages. In particular, we explore the cost of building a functional component on top of a logic one, and explore some changes in design and semantics suggested by the presence of functions. The logic language that we chose for our extension is G odel [10]. Our choice was motivated by the fact that G odel has a mostly pure declarative logic, it is strongly typed, and it has a module system and a rich set of logic expressions. An implementation of G odel is publicly available for many common platforms. The source code of the compiler comes with the ....
....semantics, though, would be quite di erent upon being called, the predicate would compute, or attempt to, the whole search space regardless of the points that would be later visited by the tester. 7 Conclusions G odel is a successor to Prolog as the extensive comparison of the two languages in [10] indicates. We believe that allowing user de ned evaluable functions (even when this feature is limited to rstorder) is advantageous in terms of expressiveness and performance. Our work shows that adding a functional component to G odel requires a modest e ort, does not require major changes to ....
P. M. Hill and J. W. Lloyd. The Godel Programming Language. MIT Press, 1993.
....language constructs that allow the implementer of the ODE theory to specify the control strategy that is to be used to accomplish this. The notion of controlling resolution in a declarative manner originated in the late 1970s[26,42,43] More recently, implemented logic programming languages (e.g. [7,45,48]) and planning systems (e.g. 6,22] have been in uenced by these ideas. The declarative speci cation of query optimization techniques for relational databases[24] can also be seen as a form of declarative meta control. The intuition behind Pret s declarative control constructs is, again, that ....
P. Hill and J. Lloyd. The Godel Programming Language. MIT Press, Cambridge, MA, 1994.
No context found.
P. M. Hill and J. W. Lloyd. The Godel Programming Language. The MIT Press, 1994.
No context found.
P. M. Hill and J. W. Lloyd. The Godel Programming Language. The MIT Press, 1994.
No context found.
P.M. Hill and J.W. Lloyd. The G odel Programming Language. MIT Press, Cambridge, MA, 1994.
No context found.
P. Hill and J. W. Lloyd. The Godel Programming Language. MIT Press, 1994.
No context found.
P. Hill and J. Lloyd. The Godel Programming Language. MIT Press, 1994.
No context found.
P. Hill and J. W. Lloyd. The Godel Programming Language. MIT Press, 1994.
No context found.
P. Hill and J. Lloyd. The Godel programming language. MIT Press, 1994.
No context found.
Hill, P. M., and Lloyd, J. W. The Godel Programming Language. The MIT Press, Cambridge, Mass., 1994.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC