Results 11  20
of
150
Unification via Explicit Substitutions: The Case of HigherOrder Patterns
 PROCEEDINGS OF JICSLP'96
, 1998
"... In [6] we have proposed a general higherorder unification method using a theory of explicit substitutions and we have proved its completeness. In this paper, we investigate the case of higherorder patterns as introduced by Miller. We show that our general algorithm specializes in a very convenient ..."
Abstract

Cited by 56 (14 self)
 Add to MetaCart
In [6] we have proposed a general higherorder unification method using a theory of explicit substitutions and we have proved its completeness. In this paper, we investigate the case of higherorder patterns as introduced by Miller. We show that our general algorithm specializes in a very convenient way to patterns. We also sketch an efficient implementation of the abstract algorithm and its generalization to constraint simplification, which has yielded good experimental results at the core of a higherorder constraint logic programming language.
Curry: A Truly Functional Logic Language
, 1995
"... Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. However, integrated functional logic languages are currently not widely used. This is due to the fact that the operational principles are not w ..."
Abstract

Cited by 53 (5 self)
 Add to MetaCart
Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. However, integrated functional logic languages are currently not widely used. This is due to the fact that the operational principles are not well understood and many different evaluation strategies have been proposed which resulted in many different functional logic languages. To overcome this situation, we propose the functional logic language Curry which can deal as a standard language in this area. It includes important ideas of existing functional logic languages and recent developments, and combines the most important features of functional and logic languages. Thus, Curry can be the basis to combine the currently separated research efforts of the functional and logic programming communities and to boost declarative programming in general. Moreover, since functions provide for more efficient evaluation strategies and ...
ACL  A Concurrent Linear Logic Programming Paradigm
 Proceedings of the 1993 International Logic Programming Symposium
, 1993
"... We propose a novel concurrent programming framework called ACL. ACL is a variant of linear logic programming, where computation is described in terms of bottomup proof search of some formula in linear logic. The whole linear sequent calculus is too nondeterministic to be interpreted as an operatio ..."
Abstract

Cited by 46 (4 self)
 Add to MetaCart
We propose a novel concurrent programming framework called ACL. ACL is a variant of linear logic programming, where computation is described in terms of bottomup proof search of some formula in linear logic. The whole linear sequent calculus is too nondeterministic to be interpreted as an operational semantics for a realistic programming language. We restrict formulas and accordingly refine inference rules for those formulas, hence overcoming this problem. Don't care interpretation of nondeterminism in the resulting system yields a very clean and powerful concurrent programming paradigm based on messagepassing style communication. It is remarkable that each ACL inference rule has an exact correspondence to some operation in concurrent computation and that nondeterminism in proof search just corresponds to an inherent nondeterminism in concurrent computation, namely, nondeterminism on message arrival order. We demonstrate the power of our ACL framework by showing several programm...
Natural Semantics and Some of its MetaTheory in Elf
 PROCEEDINGS OF THE SECOND INTERNATIONAL WORKSHOP ON EXTENSIONS OF LOGIC PROGRAMMING
, 1991
"... Operational semantics provide a simple, highlevel and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as firstorder tree structures and reasoned about using natural deductionlike meth ..."
Abstract

Cited by 44 (14 self)
 Add to MetaCart
Operational semantics provide a simple, highlevel and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as firstorder tree structures and reasoned about using natural deductionlike methods. Hannan and Miller combined these methods with higherorder representations using Prolog. In this paper we go one step further and investigate the use of the logic programming language Elf to represent natural semantics. Because Elf is based on the LF Logical Framework with dependent types, it is possible to write programs that reason about their own partial correctness. We illustrate these techniques by giving type checking rules and operational semantics for MiniML, a small functional language based on a simply typed calculus with polymorphism, constants, products, conditionals, and recursive function definitions. We also partially internalize proofs for some metatheoretic properti...
Oz  A Programming Language for MultiAgent Systems
 In 13th International Joint Conference on Artificial Intelligence
, 1993
"... Oz is an experimental higherorder concurrent constraint programming system under development at DFKI. It combines ideas from logic and concurrent programming in a simple yet expressive language. From logic programming Oz inherits logic variables and logic data structures, which provide for a ..."
Abstract

Cited by 41 (7 self)
 Add to MetaCart
Oz is an experimental higherorder concurrent constraint programming system under development at DFKI. It combines ideas from logic and concurrent programming in a simple yet expressive language. From logic programming Oz inherits logic variables and logic data structures, which provide for a programming style where partial information about the values of variables is imposed concurrently and incrementally. A novel feature of Oz is that it accommodates higherorder programming without sacrificing that denotation and equality of variables are captured by firstorder logic. Another new feature of Oz is constraint communication, a new form of asynchronous communication exploiting logic variables. Constraint communication avoids the problems of stream communication, the conventional communication mechanism employed in concurrent logic programming. Constraint communication can be seen as providing a minimal form of state fully compatible with logic data structures. Bas...
Partial Proof Trees as Building Blocks for a Categorial Grammar
 Linguistics and Philosophy
, 1997
"... We describe a categorial system (PPTS) based on partial proof trees (PPTs) as the building blocks of the system. The PPTs are obtained by unfolding the arguments of the type that would be associated with a lexical item in a simple categorial grammar. The PPTs are the basic types in the system and a ..."
Abstract

Cited by 38 (10 self)
 Add to MetaCart
We describe a categorial system (PPTS) based on partial proof trees (PPTs) as the building blocks of the system. The PPTs are obtained by unfolding the arguments of the type that would be associated with a lexical item in a simple categorial grammar. The PPTs are the basic types in the system and a derivation proceeds by combining PPTs together. We describe the construction of the finite set of basic PPTs and the operations for combining them. PPTS can be viewed as a categorial system incorporating some of the key insights of lexicalized tree adjoining grammar, namely the notion of an extended domain of locality and the consequent factoring of recursion from the domain of dependencies. PPTS therefore inherits the linguistic and computational properties of that system, and so can be viewed as a `middle ground' between a categorial grammar and a phrase structure grammar. We also discuss the relationship between PPTS, natural deduction, and linear logic proofnets, and argue that natural ...
A Proof of the ChurchRosser Theorem and its Representation in a Logical Framework
, 1992
"... We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsast ..."
Abstract

Cited by 36 (8 self)
 Add to MetaCart
We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsastypes principle and takes advantage of term reconstruction as it is provided in the Elf implementation of LF. Proofs of metatheorems are represented as higherlevel judgments which relate sequences of reductions and conversions.
The Integration of Functions into Logic Programming: A Survey
, 1994
"... Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. Early research concentrated on the definition and improvement of execution principles for such integrated languages, while more recently efficient ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. Early research concentrated on the definition and improvement of execution principles for such integrated languages, while more recently efficient implementations of these execution principles have been developed so that these languages became relevant for practical applications. In this paper we survey the development of the operational semantics as well as
A SemiFunctional Implementation of a HigherOrder Logic Programming Language
 Topics in Advanced Language Implementation
, 1991
"... ions *) and varbind = Varbind of string * term (* Variable binders , Type *) In the implementation of the term language and the type checker, we have two constants type and pi. And, yes, type is a type, though this could be avoided by introducing universes (see [16]) without any changes to the code ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
ions *) and varbind = Varbind of string * term (* Variable binders , Type *) In the implementation of the term language and the type checker, we have two constants type and pi. And, yes, type is a type, though this could be avoided by introducing universes (see [16]) without any changes to the code of the unifier. As is customary, we use A ! B as an abbreviation for \Pix : A: B if x does not occur free in B. Also, however, \Pix : A: B is an abbreviation for the application pi A (x : A: B). In our formulation, then, the constant pi has type \PiA : type: ((A ! type) ! type). As an example consider a predicate constant eq of type \PiA : type: A ! A ! o (where o is the type of formulas as indicated in Section 9). The single clause eqAM M: correctly models equality, that is, a goal of the form eq AM N will succeed if M and N are unifiable. The fact that unification now has to branch can be seen by considering the goal eq int (F 1 1) 1 which has three solutions for the functional logic var...
Strategic Pattern Matching
 Rewriting Techniques and Applications (RTA'99
, 1999
"... Stratego is a language for the specification of transformation rules and strategies for applying them. The basic actions of transformations are matching and building instantiations of firstorder term patterns. The language supports concise formulation of generic and data typespecific term traversa ..."
Abstract

Cited by 34 (7 self)
 Add to MetaCart
Stratego is a language for the specification of transformation rules and strategies for applying them. The basic actions of transformations are matching and building instantiations of firstorder term patterns. The language supports concise formulation of generic and data typespecific term traversals. One of the unusual features of Stratego is the separation of scope from matching, allowing sharing of variables through traversals. The combination of firstorder patterns with strategies forms an expressive formalism for pattern matching. In this paper we discuss three examples of strategic pattern matching: (1) Contextual rules allow matching and replacement of a pattern at an arbitrary depth of a subterm of the root pattern. (2) Recursive patterns can be used to characterize concisely the structure of languages that form a restriction of a larger language. (3) Overlays serve to hide the representation of a language in another (more generic) language. These techniques are illustrated by...