Results 1  10
of
16
19831993: The Wonder Years of Sequential Prolog Implementation
, 1993
"... This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part ..."
Abstract

Cited by 49 (4 self)
 Add to MetaCart
This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part gives an overview of the important technical developments starting with the Warren Abstract Machine (WAM). The second part presents the history and the contributions of the major software and hardware systems. The third part charts the evolution of Prolog performance since Warren's DEC10 compiler. The fourth part extrapolates current trends regarding the evolution of sequential logic languages, their implementation, and their role in the marketplace.
Ordered Linear Logic and Applications
, 2001
"... This work is dedicated to my parents. Acknowledgments Firstly, and foremost, I would like to thank my principal advisor, Frank Pfenning, for his patience with me, and for teaching me most of what I know about logic and type theory. I would also like to acknowledge some useful discussions with Kevin ..."
Abstract

Cited by 36 (0 self)
 Add to MetaCart
This work is dedicated to my parents. Acknowledgments Firstly, and foremost, I would like to thank my principal advisor, Frank Pfenning, for his patience with me, and for teaching me most of what I know about logic and type theory. I would also like to acknowledge some useful discussions with Kevin Watkins which led me to simplify some of this work. Finally, I would like to thank my other advisor, John Reynolds, for all his kindness and support over the last five years. Abstract This thesis introduces a new logical system, ordered linear logic, which combines reasoning with unrestricted, linear, and ordered hypotheses. The logic conservatively extends (intuitionistic) linear logic, which contains both unrestricted and linear hypotheses, with a notion of ordered hypotheses. Ordered hypotheses must be used exactly once, subject to the order in which they were assumed (i.e., their order cannot be changed during the course of a derivation). This ordering constraint allows for logical representations of simple data structures such as stacks and queues. We construct ordered linear logic in the style of MartinL"of from the basic notion of a hypothetical judgement. We then show normalization for the system by constructing a sequent calculus presentation and proving cutelimination of the sequent system.
Skeletons and Techniques as a Normative Approach to Program Development in Logicbased Languages
, 1994
"... To help encourage the wide use of a variety of logicbased languages, we advocate the identification and use of systematic program construction methods. Our approach is to capture programming idioms in the form of skeletons, or basic control flows, and standard programming techniques for construc ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
To help encourage the wide use of a variety of logicbased languages, we advocate the identification and use of systematic program construction methods. Our approach is to capture programming idioms in the form of skeletons, or basic control flows, and standard programming techniques for construction and manipulation of data structures. We argue that the approach, coming initially from Prolog and logic grammars, is equally applicable in the context of constraints, committedchoice and higher order constructs, and indeed logicbased languages in general. This paper introduces our generalized view of skeletons and techniques, gives examples of the breadth of their applicability, and explores positive consequences for program development. 1 The Need for a Normative View Most proponents of logic programming, after having been excited about the advantages of logic programming, have puzzled why the technology has not become more widely adopted. Despite obvious advantages, logic prog...
An Overview of Linear Logic Programming
 in Computational Logic
, 1985
"... Logic programming can be given a foundation in sequent calculus by viewing computation as the process of building a cutfree sequent proof bottomup. The first accounts of logic programming as proof search were given in classical and intuitionistic logic. Given that linear logic allows richer sequen ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Logic programming can be given a foundation in sequent calculus by viewing computation as the process of building a cutfree sequent proof bottomup. The first accounts of logic programming as proof search were given in classical and intuitionistic logic. Given that linear logic allows richer sequents and richer dynamics in the rewriting of sequents during proof search, it was inevitable that linear logic would be used to design new and more expressive logic programming languages. We overview how linear logic has been used to design such new languages and describe briefly some applications and implementation issues for them.
MetaProgramming in CLP(R)
, 1994
"... A widely used property of Prolog is that it is possible to write Prolog programs to construct and manipulate other Prolog programs in a very general manner. Unfortunately, this property is not carried over to richer languages such as CLP(R)  the manipulation of CLP(R) programs in CLP(R) is quit ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
A widely used property of Prolog is that it is possible to write Prolog programs to construct and manipulate other Prolog programs in a very general manner. Unfortunately, this property is not carried over to richer languages such as CLP(R)  the manipulation of CLP(R) programs in CLP(R) is quite limited. The reason is that the equality of terms in CLP(R) is not based on their syntactic structure. We propose an extended language, CLP(R+M), in which programs may be represented and structurally manipulated. Importantly, CLP(R+M) is not just a metalanguage for CLP(R), but it can also be used as its own metalanguage. We present a decision algorithm for R+M constraints, discuss implementation issues, and describe the implementation of a sublass of R+M constraints. Finally, by building on the extended language, we present an integrated set of system predicates and a methodology for practical metaprogramming. An earlier version of this paper appeared in the Proceedings of the N...
Towards a Practical Programming Language Based on the Polymorphic Lambda Calculus
, 1989
"... The value of polymorphism in programming languages has been demonstrated by languages such as ML [19]. Recent e cient implementations of ML have shown that a language with implicit polymorphism can be practical [1]. The core of ML's type system is limited, however, by the fact that only instances of ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The value of polymorphism in programming languages has been demonstrated by languages such as ML [19]. Recent e cient implementations of ML have shown that a language with implicit polymorphism can be practical [1]. The core of ML's type system is limited, however, by the fact that only instances of polymorphic functions may be passed as arguments to other functions, but
LEAP: A Language with Eval And Polymorphism
"... We describe the core of a new stronglytyped functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!order polymorphiccalculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of reify ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We describe the core of a new stronglytyped functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!order polymorphiccalculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of reify, reflect, and eval for all of F!. Pure LEAP is therefore highly re exive and strongly typed. We believe that Pure LEAP can be extended to a practical and e cient metalanguage in the ML tradition. At present we are experimenting with a prototype implementation of Pure LEAP. 1
15819K: Logic Programming Lecture 10
, 2006
"... In this lecture we extend the system of simple types from the previous lecture to encompass polymorphism. There are some technical pitfalls, and some plausible systems do not satisfy type preservation. We discuss three ways to restore type preservation. 10.1 Heterogeneous and Homogeneous Lists Types ..."
Abstract
 Add to MetaCart
In this lecture we extend the system of simple types from the previous lecture to encompass polymorphism. There are some technical pitfalls, and some plausible systems do not satisfy type preservation. We discuss three ways to restore type preservation. 10.1 Heterogeneous and Homogeneous Lists Types such as natural numbers, be it in binary or in unary notation, are easy to specify and use in the system from the previous lecture. Generic data structures such as lists, on the other hand, present difficulties. Recall the type predicate for lists: list([]). list([XXs]): list(Xs). The difficulty is that for lists in general there is no restriction on X: it can have arbitrary type. When we try to give the declarations list: type. [] : list. ’. ’ :?, list> list. we realize that there is nothing sensible we can put as the type of the first argument of cons. 1 Two solutions suggest themselves. One is to introduce a universal type “any ” and ensure that t: any for all terms t. This destroys the property of 1 Recall that [XXs] is just alternate syntax for’.’(X, Xs)