Results 1  10
of
11
A syntax for linear logic
 Presented at Conference on Mathematical Foundations of Programming Language Semantics
, 1993
"... Abstract. This tutorial paper provides an introduction to intuitionistic logic and linear logic, and shows how they correspond to type systems for functional languages via the notion of ‘Propositions as Types’. The presentation of linear logic is simplified by basing it on the Logic of Unity. An app ..."
Abstract

Cited by 72 (5 self)
 Add to MetaCart
Abstract. This tutorial paper provides an introduction to intuitionistic logic and linear logic, and shows how they correspond to type systems for functional languages via the notion of ‘Propositions as Types’. The presentation of linear logic is simplified by basing it on the Logic of Unity. An application to the array update problem is briefly discussed. 1
A framework of directionality for proving termination of logic programs
 Proc. JICSLP
, 1992
"... internet: ..."
Mode and Termination Checking for HigherOrder Logic Programs
 In Hanne Riis Nielson, editor, Proceedings of the European Symposium on Programming
, 1996
"... . We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Jus ..."
Abstract

Cited by 32 (10 self)
 Add to MetaCart
. We consider how mode (such as input and output) and termination properties of typed higherorder constraint logic programming languages may be declared and checked effectively. The systems that we present have been validated through an implementation and numerous case studies. 1 Introduction Just like other paradigms logic programming benefits tremendously from types. Perhaps most importantly, types allow the early detection of errors when a program is checked against a type specification. With some notable exceptions most type systems proposed for logic programming languages to date (see [18]) are concerned with the declarative semantics of programs, for example, in terms of manysorted, ordersorted, or higherorder logic. Operational properties of logic programs which are vital for their correctness can thus neither be expressed nor checked and errors will remain undetected. In this paper we consider how the declaration and checking of mode (such as input and output) and termina...
Directional Types and the Annotation Method
, 1997
"... This paper shows that the annotation proof method, proposed by Deransart for proving declarative properties of logic programs, is also applicable for proving correctness of directional types. In particular, the sufficient correctness criterion of welltypedness by Bronsard et al, turns out to be a s ..."
Abstract

Cited by 28 (3 self)
 Add to MetaCart
This paper shows that the annotation proof method, proposed by Deransart for proving declarative properties of logic programs, is also applicable for proving correctness of directional types. In particular, the sufficient correctness criterion of welltypedness by Bronsard et al, turns out to be a specialization of the annotation method. The comparison shows a general mechanism for construction of similar specializations, which is applied to derive yet another concept of welltypedness. The usefulness of the new correctness criterion is shown on examples of Prolog programs, where the traditional notion of welltypedness is not applicable. We further show that the new welltyping condition can be applied to different execution models. This is illustrated by an example of an execution model where unification is controlled by directional types, and where our new welltyping condition is applied to show the absence of deadlock. / 1. INTRODUCTION
Coroutining and the Construction of Terminating Logic Programs
 Australian Computer Science Communications
, 1992
"... This paper investigates the role of coroutining in the termination of logic programs. We define a variant of SLD resolution, in which the execution of atoms may be suspended indefinitely, and give some basic results concerning success, finite failure and floundering. Next we discuss how correct proc ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
This paper investigates the role of coroutining in the termination of logic programs. We define a variant of SLD resolution, in which the execution of atoms may be suspended indefinitely, and give some basic results concerning success, finite failure and floundering. Next we discuss how correct procedures can be combined to form new procedures using disjunction, conjunction and recursion. We argue that modes are crucial to reasoning about termination and show that cyclic modes are the basic reason for conjunctions looping. When recursion is used we identify another cause of loops: speculative binding of output variables. That is, binding output variables before it is known that a solution to a subcomputation exists. Keywords: mode, flounder, Prolog, stream andparallelism  1  1 Introduction
Abstract Interpretation of Linear Logic Programming
 IN PROC. OF ILPS'93
, 1993
"... Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Lo ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Logic. A proof normalization procedure, called "focusing", has been proposed to make the problem of proof search tractable. Correspondingly, there is a normalization procedure mapping formulae of Linear Logic into a syntactic fragment of that logic, called LinLog, and in which the focusing normalization for proofs can be most conveniently expressed. In this paper, we propose to push this compilation/normalization process further, by applying abstract interpretation and partial evaluation techniques to (focused) proofs in LinLog. These techniques provide information concerning the evolution of the computational resources (formulae) during the execution (proof construction). The practical outcome that we expect from this theoretical effort is the definition of a general tool for statically analyzing and reasoning about the runtime behavior of programs in frameworks where computations can be accounted for in terms of proof search in Linear Logic.
Static Analysis of Linear Logic Programming
 NEW GENERATION COMPUTING
, 1997
"... Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Logic. A proof normalization procedure, called "focusing", has been proposed to make the problem of proof search tractable. Correspondingly,
Polymorphic Directional Types for Logic Programming
 Proceedings of the 3rd international ACM SIGPLAN conference on
, 2001
"... In this paper we present a new type system for logic programs. Our system combines ideas of the classical polymorphic, but not very precise, system due to Mycroft and O'Keefe [16], and the complementary system of directional types that has been proposed by Aiken and Lakshman [1]. ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
In this paper we present a new type system for logic programs. Our system combines ideas of the classical polymorphic, but not very precise, system due to Mycroft and O'Keefe [16], and the complementary system of directional types that has been proposed by Aiken and Lakshman [1].
The concurrent language Aldwych
 Proc. 1 st Int. Workshop on RuleBased Programming (RULE
, 2000
"... Abstract. Aldwych is a general purpose programming language which we have developed in order to provide a mechanism for practical programming which can be thought of in an inherently concurrent way. We have described Aldwych elsewhere [13] in terms of a translation to a concurrent logic language. Ho ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. Aldwych is a general purpose programming language which we have developed in order to provide a mechanism for practical programming which can be thought of in an inherently concurrent way. We have described Aldwych elsewhere [13] in terms of a translation to a concurrent logic language. However, it would be more accurate to describe it as translating to a simple operational language which, while able to be represented in a logicprogramming like syntax, has lost much of the baggage associated with “logic programming”. This language is only a little more complex than foundational calculi such as the picalculus. Its key feature is that all variables are moded with a single producer, and some are linear allowing a reversal of polarity and hence interactive communication.