Results 1  10
of
22
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 50 (4 self)
 Add to MetaCart
(Show Context)
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
(Show Context)
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&quot;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 9 (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.
A Survey of Linear Logic Programming
 Computational Logic
, 1995
"... Abstract. Logic programming can be given a foundation in sequent calculus, viewing computation as the process of building a cutfree sequent proof from the bottomup. Earliest accounts of logic programming were based in classical logic and then later in intuitionistic logic. The use of linear logic ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Abstract. Logic programming can be given a foundation in sequent calculus, viewing computation as the process of building a cutfree sequent proof from the bottomup. Earliest accounts of logic programming were based in classical logic and then later in intuitionistic logic. The use of linear logic to design new logic programming languages was inevitable given that it allows for more dynamics in the way sequents change during the search for a proof and since it can account for logic programming in these other logics. We overview how linear logic has been used to design new logic programming languages and describe some applications and implementation issues for such languages. §1. Introduction. It is now common place to recognize the important role of logic in the foundations of computer science in general and programming languages more specifically. For this reason, when a major new advance is made in our understanding of logic, we can expect to see that advance ripple into other areas of computer science. Such rippling has been observed during the years
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 instanc ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
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 ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
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
Towards a judgmental reconstruction of logical relation proofs
, 2006
"... Abstract. Tait’s method (a.k.a. proof by logical relations) is a powerful proof technique frequently used for showing foundational properties of languages based on typed lambdacalculi. Historically, these proofs have been difficult to formalize in proof assistants with weak metalogics, such as Twe ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Tait’s method (a.k.a. proof by logical relations) is a powerful proof technique frequently used for showing foundational properties of languages based on typed lambdacalculi. Historically, these proofs have been difficult to formalize in proof assistants with weak metalogics, such as Twelf. Logical relations are notoriously difficult to define judgmentally. In this paper, we present and discuss a Twelf proof of weak normalization for System F making use of higherorder encodings. We exhibit a modular technique on how to formalize proofs of this kind, and make explicit all logical principles that one needs to trust in order believe in the proof. 1