26 citations found. Retrieving documents...
Z. Somogyi, F. Henderson, and T. Conway. The Execution Algorithm of Mercury, an E#cient Purely Declarative Logic Programming Language. Journal of Logic Programming, 29#1#3#:17#64, October#December 1996.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Resource-Passing Concurrent Programming - Ueda   (2 citations)  (Correct)

....outside logic programming, while a survey of linear logic programming languages can be found in [23] There is a lot of work on compile time garbage collection other than that based on typing. In logic programming, most of the previous work is based on abstract interpretation [14] Mercury [34] is a logic programming language known for its high performance and enables compile time garbage collection using mode and uniqueness declarations [21] However, the key di#erence between Mercury and GHC is that the former does not allow non strict data structures while the latter is highly ....

Somogyi, Z., Henderson, F. and Conway, T., The Execution Algorithm of Mercury, An E#cient Purely Declarative Logic Programming Language. J. Logic Programming, Vol. 29, No. 1--3 (1996), pp. 17--64.


Collecting Potential Optimisations - Mazur, Janssens, Vanhoof   (Correct)

....then schematically generalised to abstract domains endowed with a generalised pseudo complement operator. This abstract represents work in progress. 1 Introduction We have previously developed a compile time garbage collection (CTGC) system [8] for the modern logic programming language Mercury [9]. The purpose of such a system is to optimise the memory usage of a given program, by detecting at compile time when heap cells representing data become garbage and then deciding to reuse these heap cells for representing new data. This analysis is based on liveness analysis, which itself is based ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. The Journal of Logic Programming, 29(1--3):17--64, October-December 1996.


Combining an Improvement to PARMA Trailing with Trailing.. - Schrijvers, Demoen (2002)   (2 citations)  (Correct)

....this holds in the PARMA scheme. The PARMA scheme is used in HAL: HAL [5, 4] is a constraint logic language designed to support the construction, extension and use of constraint solvers. HAL requires type declarations and has optional mode and determinism declarations. It is compiled to Mercury [16] so as to leverage from its sophisticated compilation techniques. However, unlike Mercury, HAL includes a Herbrand constraint solver which provides full unification. This solver uses Taylor s PARMA scheme rather than the standard WAM representation. This is because, unlike the WAM, the PARMA ....

Z. Somogyi, F. Henderson, and T. Conway. Mercury: an e#cient purely declarative logic programming language. In Australian Computer Science Conference, pages 499--512, February 1995.


Trailing Analysis for HAL - Schrijvers, Banda, Demoen (2002)   (1 citation)  (Correct)

....at determining which Herbrand variables do not need to be trailed. The accuracy of the analysis comes from HAL s semi optional determinism and mode declarations. The analysis has been partially integrated in the HAL compiler and benchmark programs show good speed up. 1 Introduction Mercury [SHC95] is a logic programming language considerably faster than traditional Prolog implementations. One reason is that Mercury requires the programmer to provide type, mode and determinism declarations whose information is used to generate e#cient target code. Another reason is that variables can only ....

Z. Somogyi, F. Henderson, and T. Conway. Mercury: an e#cient purely declarative logic programming language. In Australian Computer Science Conference, pages 499--512, February 1995.


Visualizing Solutions with Viewers - Neumerkel, Rettig, Schallhart (1997)   (Correct)

....from pure Prolog. Often this is taken as a pretext to introduce impure features and side e#ects. There are however approaches similar to pure functional languages to provide side e#ects in a pure logic language. Current state of the art in providing I O in a pure logic language (like Mercury [1]) restricts nondeterminism in I O related predicates. Modes and other procedural notions have to be taken into account. This approach is not desirable within the focus of our course. Some less universal primitives have been implemented. There is no direct output, but (the terms of) answer ....

....procedures of Prolog are replaced by grammars, reinforcing the notion that grammars can also be used to describe the actual output as indented text or simple ASCII graphics . hpuzzle(Xs) hpuzzle(Xs) false. hpuzzle(Zs) hpuzzlerel(Zs) labeling zs( Zs) hpuzzlerel(Xs) hpuzzlerel([2,7,3,4,5,1,6]) hpuzzlerel( 1,3,7,6,2,4,5] hpuzzlerel(Xs) false. hpuzzlerel(Zs) Zs = A,B,C,D,E,F,G] domain zs(1. 7,Zs) all di#erent(Zs) A B C #= H, B D F #= H, E F G #= H. Predicate hpuzzle 1 describes the solutions to a simple puzzle problem. In front of each predicate several assertions are ....

[Article contains additional citation context not shown here]

Z. Somogyi, F. Henderson, Th. Conway, The Execution Algorithm of Mercury, an E#- cient Purely Declarative Logic Programming Language. JLP 29(1-3): 17-64 (1996).


Subject Reduction of Logic Programs as Proof-Theoretic Property - Deransart, Smaus (2002)   (Correct)

....atoms of incomplete nodes of a most general derivation tree for P # go # Q with head go, visited left to right. 2. 2 Typed Logic Programming We assume a type system for logic programs with parametric polymorphism but without subtyping, as realised in the languages Godel [HL94] and Mercury [SHC96] 4 Table 1: Rules defining a typed language (Var) x : #, # x : # (Func) ##t 1 :# 1 # ##tm :# m# ##f # 1 . # m## (t 1 , t m ) ## # is a type substitution (Atom) ##t 1 :# 1 # ##tm :# m# ##p # 1 . # m (t 1 , t m ) Atom # is a type substitution (Query) ##A 1 Atom ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1--3):17--64, 1996.


FaCiLe: a Functional Constraint Library - Brisset, Barnier (2001)   (Correct)

....reviewing a few features of the library. The next section introduces the arithmetic and global constraints of FaCiLe. The third part is devoted to a thorough exploration of the clean semantics and expressive power of FaCiLe search and optimization procedures. 1 Except recent systems like Mercury [22] and Gdel [8] 2.1 A Short Example Programming with FaCiLe follows the classic CP scheme as illustrated in the example below that (naively) solves the magic sequence problem (a magic sequence is a sequence of n integers X = x 0 ; x 1 ; xn 1 ) such that 0 will appear in the sequence x 0 ....

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. Mercury: an ecient purely declarative logic programming language. In Proceedings of the Australian Computer Science Conference, pages 499512, Glenelg, Australia, February 1995.


Analysis of Polymorphically Typed Logic Programs Using.. - Smaus (2001)   (Correct)

....sharp line between type and mode (groundness, instantiation) analysis: saying that a term is a list is at the same time a statement about its type and about its degree of instantiation. We adopt a prescriptive view of types. We analyse programs in typed languages, e.g. Godel [9] HAL [7] Mercury [16]. Therefore the types need not be analysed since they are given by declarations or inference. Also, unlike [5] we need not consider ill typed terms such as [1 2] since these can never occur. This paper is a synthesis of two other works taking the prescriptive view [11, 15] and [5] The ....

....a possible future implementation, and Sec. 8 discusses our results. A long version of this paper containing all proofs can be found in [14] 2 Preliminaries We assume familiarity with the basic notions of logic programming [12] We use a type system for logic programs with parametric polymorphism [7, 9, 16]. 1 We abbreviate string by str and integer by int. Let K be a finite set of (type) constructors, each c # K with an arity n # 0 associated (by writing c n) and U be a set of parameters. The set of types is the term structure T (K, U) A type substitution is an idempotent mapping ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1--3):17--64, 1996.


The theoretical foundations of LPTP (a logic program theorem prover) - Stärk   (Correct)

....then it follows that t 1 and t 2 are also ground terms, etc. Thus we have a method to prove operational properties of a logic program in a declarative way. Thereby we obtain a declarative semantics for the the mode , type and determinism declarations of the new logic programming language Mercury [19]. There are well established methods for proving properties of logic programs. There are methods for proving termination, there are methods for proving well typedness etc. cf. e.g. 2, 4, 9, 16, 18] Our approach, however, is di#erent in two aspects. First, we have one single formal system in ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. J. of Logic Programming, 29(1--3):17--64, 1996.


Formal Verification of Logic Programs: Foundations and.. - Stärk   (Correct)

....a finite list of goals. We use [G 1 , G n ] as an abbreviation for the query G 1 . G n true. The existential quantifier some xG binds the variable x in the goal G. Existential quantification is implicit in Prolog. It is explicit in extensions of Prolog like Godel [7] and Mercury [9]. Free and bound variables in goals are defined as usual. We use the vector notation x for a finite list x 1 , x n . We write G[x] to express that all free variables of G are among the list x; G(x) may contain other free variables than x. A goal or a term is called ground, if it does not ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. J. of Logic Programming, 29(1--3):17--64, 1996.


Extensionality of Simply Typed Logic Programs - Bezem (1999)   (1 citation)  (Correct)

....terms. Some restricted forms of higher order logic programming are already supported by Prolog, but in the more recent logic languages, following functional languages, the higher order has been incorporated in the design from the very beginning: Lambda Prolog [8] Hilog [2] Godel [5] and Mercury [11]. Good references are [10] and [9] In this paper we address the problem of assigning meaning to higher order logic programs, and study in particular the phenomenon of extensionality. The basis of the proposed semantics is the theory of simple types, founded by Church [3] In order to get a clear ....

Z. Somogyi, F.J. Henderson and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1--3):17--64, 1996.


Using Modes to Ensure Subject Reduction for Typed Logic.. - Smaus, Fages, Deransart (2000)   (1 citation)  (Correct)

....reduction for typed logic programs 3 1 Introduction Prescriptive types are used in logic and functional programming to restrict the underlying syntax so that only meaningful expressions are allowed. This allows for many programming errors to be detected by the compiler. Gdel [9] and Mercury [19] are two implemented typed logic programming languages. A natural stability property one desires for a type system is that it is consistent with the execution model: once a program has passed the compiler, it is guaranteed that welltyped con gurations will only generate well typed ....

....mode requirement) Alternatively, it can be veri ed statically that a program will be executed using moded uni cation. In particular, nicely moded programs are very amenable to such veri cation [2] Moded uni cation can actually be very bene cial for e ciency, as witnessed by the language Mercury [19]. Apart from that, 3) nicely modedness states the linearity of the terms being instantiated in a uni cation. Nicely modedness is designed so that it is persistent under INRIA Using modes to ensure subject reduction for typed logic programs 21 resolution steps, provided clause heads are ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an ecient purely declarative logic programming language. Journal of Logic Programming, 29(13):1764, 1996.


LPTP: A Logic Program Theorem Prover - Stärk (1997)   (Correct)

....axioms for var 1 it must certainly be possible do derive succeeds var( x) since x is a variable. But then we can derive: all x: succeeds var( x) succeeds var(c) But c is a constant and var(c) fails. Thus the LPTP system would be incorrect. We believe that the era of var 1 is over (cf [9]) Under the two assumptions that the occurs check is done and that the builtin predicates are implemented correctly, one can show that LPTP is adequate in the following sense. Let us assume that P is a pure Prolog program and that the internal database of LPTP contains exactly the clauses of P ....

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. J. of Logic Programming, 29(1--3):17--64, 1996. 87


Accurate Garbage Collection in an Uncooperative Environment - Henderson (2002)   (1 citation)  Self-citation (Henderson)   (Correct)

....rotd2002 04 19. Each benchmark was compiled with mmc O5 no reclaim heap on failure no deforestation . Times shown are each the best of three successive runs, on an unloaded machine. We used a set of small benchmarks that has previously been used in benchmarking Mercury implementations [18]. Since the time for many of these benchmarks is very small, we ran each benchmark for many iterations, and measured the total time to execute all iterations. Ideally, it would be better to test with larger benchmarks. But our current implementation does not yet support the full Mercury language ....

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 1997.


Towards Parallel Mercury - Conway (2002)   Self-citation (Conway)   (Correct)

....port counts and memory words . 109 Introduction In this thesis we will be concerned with the intersection of two subject areas: logic programming, and software engineering. We will be exploring how support for parallelism can be added to the logic programming language Mercury [98], which has been designed to support the engineering of large software systems. The essential design goals of Mercury were that it be a purely declarative language; that it support the construction of large software systems; and that it yield high performance. These goals hold also for adding ....

....restrict (in a well defined way) the possible set of intended interpretations of a predicate (see [69, 72] and therefore let program analyses avoid having to make unnecessary generalizations. The Mercury group at the University of Melbourne have developed a logic programming language (Mercury [98]) which aims to satisfy all these requirements. We use the basic Mercury language as the foundation on which we will build some of the infrastructure necessary for constructing a high performance parallel system. The language, and how it is used, have important implications for how we support ....

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. The implementation of Mercury, an e#cient purely declarative logic programming language. In Proceedings of the ILPS '94 Postconference Workshop on Implementation Techniques for Logic Programming Languages, Syracuse, New York, November 1994.


Towards Parallel Mercury - Conway (2002)   Self-citation (Conway)   (Correct)

....for how we support parallelism, and how we aim to achieve high performance. Thanks to the information in declarations and to the absence of hard to analyze features from the lan guage, Mercury programs can be executed very e#ciently compared to Prolog programs in most Prolog implementations. See [96] for some data on the relative performance of some popular Prolog implementations compared to Mercury. This means that the cost of low level operations (like creating a thread, or allocating a block of memory for a new stack) are relatively much more expensive. This means that to get good ....

....achieving these aims. Mercury is certainly purely declarative; we have successfully maintained the compiler (which with the Mercury standard library is about 300,000 lines of Mercury code) over more than five years, with an evolving team of between three and fifteen programmers; and as reported in [96], it achieves performance significantly better than any other logic programming system. Mercury programs consist of Horn clauses giving the definitions of predicates and functions, and declarations. There are four classes of declarations that we will discuss: type, mode, determinism and module ....

[Article contains additional citation context not shown here]

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 26(1-3):17--64, October-December 1996.


Constraint-Based Mode Analysis of Mercury - Overton, Somogyi, Stuckey (2002)   Self-citation (Somogyi)   (Correct)

....notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and or a fee. PPDP 02, October 6 8, 2002, Pittsburgh, Pennsylvania, USA. Copyright 2002 ACM 1 58113 528 9 02 0010 . 5.00. cury [19] have shown that strong type and mode systems can provide many advantages. The type, mode and determinism declarations of a Mercury program not only provide useful documentation for developers, they also enable compilers to generate very e#cient code, improve program robustness, and facilitate ....

....used to select an execution order for goals in a conjunction. In Section 7 we give some preliminary experimental results. 2. BACKGROUND Mercury is a purely declarative logic programming language designed for the construction of large, reliable and e#cient software systems by teams of programmers [19]. Mercury s syntax is similar to the syntax of Prolog, but Mercury also has strong module, type, mode and determinism systems, which catch a large fraction of programmer errors and enable the compiler to generate fast code. The rest of this section explains the main features of Mercury that are ....

[Article contains additional citation context not shown here]

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. JLP, 26(1-3):17--64, 1996.


Implementing Escher on a Graph Reduction Machine - Kerstin Eder University   (Correct)

No context found.

Z. Somogyi, F. Henderson, and T. Conway. The Execution Algorithm of Mercury, an E#cient Purely Declarative Logic Programming Language. Journal of Logic Programming, 29#1#3#:17#64, October#December 1996.


Guard and Continuation Optimization for Occurrence.. - Sneyers, Schrijvers.. (2005)   (Correct)

No context found.

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. Mercury: an e#cient purely declarative logic programming language. In Proceedings of the 18th Australian Computer Science Conference, pages 499--512, Glenelg, Australia, 1995.


Guard Simplification in CHR programs - Sneyers, Schrijvers, Demoen (2004)   (Correct)

No context found.

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. Mercury: an e#cient purely declarative logic programming language. In Proceedings of the Australian Computer Science Conference, pages 499--512, February 1995.


Inference of Well-typings for Logic Programs with.. - Bruynooghe.. (2005)   (Correct)

No context found.

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1-3):17--64, 1996.


Precise and Expressive Mode Systems for Typed Logic Programming.. - Overton (2003)   (Correct)

No context found.

Zoltan Somogyi, Fergus Henderson, and Thomas Conway. Mercury: An e#cient purely declarative logic programming language. In Proceedings of the Australian Computer Science Conference, pages 499--512, 1995.


Termination Analysis with Types is More Accurate - Lagoon, Mesnard, Stuckey (2003)   (1 citation)  (Correct)

No context found.

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1--3):17--64, 1996.


Characterisations of Termination in Logic Programming - Pedreschi, Ruggieri, Smaus   (Correct)

No context found.

Z. Somogyi, F. Henderson, and T. Conway. The execution algorithm of Mercury, an e#cient purely declarative logic programming language. Journal of Logic Programming, 29(1--3):17--64, 1996.


Error-correcting Source Code - Yasuhiro Ajiro Kazunori (1998)   (1 citation)  (Correct)

No context found.

Somogyi, Z., Henderson, F. and Conway, T., The Execution Algorithm of Mercury, An E#cient Purely Declarative Logic Programming Language. J. Logic Programming, Vol. 29, No. 1--3 (1996), pp. 17--64.

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