Results 1  10
of
32
MultiStage Programming: Its Theory and Applications
, 1999
"... MetaML is a statically typed functional programming language with special support for program generation. In addition to providing the standard features of contemporary programming languages such as Standard ML, MetaML provides three staging annotations. These staging annotations allow the construct ..."
Abstract

Cited by 98 (21 self)
 Add to MetaCart
MetaML is a statically typed functional programming language with special support for program generation. In addition to providing the standard features of contemporary programming languages such as Standard ML, MetaML provides three staging annotations. These staging annotations allow the construction, combination, and execution of objectprograms. Our thesis is that MetaML's three staging annotations provide a useful, theoretically sound basis for building program generators. This dissertation reports on our study of MetaML's staging constructs, their use, their implementation, and their formal semantics. Our results include an extended example of where MetaML allows us to produce efficient programs, an explanation of why implementing these constructs in traditional ways can be challenging, two formulations of MetaML's semantics, a type system for MetaML, and a proposal for extending ...
Combinatory Reduction Systems: introduction and survey
 THEORETICAL COMPUTER SCIENCE
, 1993
"... Combinatory Reduction Systems, or CRSs for short, were designed to combine the usual firstorder format of term rewriting with the presence of bound variables as in pure λcalculus and various typed calculi. Bound variables are also present in many other rewrite systems, such as systems with simpl ..."
Abstract

Cited by 96 (9 self)
 Add to MetaCart
Combinatory Reduction Systems, or CRSs for short, were designed to combine the usual firstorder format of term rewriting with the presence of bound variables as in pure λcalculus and various typed calculi. Bound variables are also present in many other rewrite systems, such as systems with simplification rules for proof normalization. The original idea of CRSs is due to Aczel, who introduced a restricted class of CRSs and, under the assumption of orthogonality, proved confluence. Orthogonality means that the rules are nonambiguous (no overlap leading to a critical pair) and leftlinear (no global comparison of terms necessary). We introduce the class of orthogonal CRSs, illustrated with many examples, discuss its expressive power, and give an outline of a short proof of confluence. This proof is a direct generalization of Aczel's original proof, which is close to the wellknown confluence proof for λcalculus by Tait and MartinLof. There is a wellknown connection between the para...
The Rho Cube
 In Proc. of FOSSACS, volume 2030 of LNCS
, 2001
"... www.loria.fr/{~cirstea,~ckirchne,~lliquori} Abstract. The rewriting calculus, or Rho Calculus (ρCal), is a simple calculus that uniformly integrates abstraction on patterns and nondeterminism. Therefore, it fully integrates rewriting and λcalculus. The original presentation of the calculus was unty ..."
Abstract

Cited by 39 (19 self)
 Add to MetaCart
www.loria.fr/{~cirstea,~ckirchne,~lliquori} Abstract. The rewriting calculus, or Rho Calculus (ρCal), is a simple calculus that uniformly integrates abstraction on patterns and nondeterminism. Therefore, it fully integrates rewriting and λcalculus. The original presentation of the calculus was untyped. In this paper we present a uniform way to decorate the terms of the calculus with types. This gives raise to a new presentation à la Church, together with nine (8+1) type systems which can be placed in a ρcube that extends the λcube of Barendregt. Due to the matching capabilities of the calculus, the type systems use only one abstraction mechanism and therefore gives an original answer to the identification of the standard “λ ” and “Π” abstractors. As a consequence, this brings matching and rewriting as the first class concepts of the Rhoversions of the Logical Framework (LF) of Harper
A LambdaCalculus for Dynamic Binding
 Theoretical Computer Science
, 1997
"... This paper proposes N , a compact extension of the calculus to model dynamic binding, where variables are labelled by names, and where arguments are passed to functions along named channels. The resulting formalism preserves familiar properties of the calculus, has a Currystyle type inference sys ..."
Abstract

Cited by 36 (2 self)
 Add to MetaCart
(Show Context)
This paper proposes N , a compact extension of the calculus to model dynamic binding, where variables are labelled by names, and where arguments are passed to functions along named channels. The resulting formalism preserves familiar properties of the calculus, has a Currystyle type inference system, and has a formal notion of compatibility for reasoning about extensible environments. It can encode record and record extensions, as well as firstclass contexts with contextfilling operations, and therefore provides a basic framework for expressing a wide range of namebased coordination mechanisms. An experimental functional language based on N illustrates the exploitation of dynamic binding in programming language design. 1 Introduction Computer systems are required to be increasingly "open"  able to dynamically interact with other, possibly unknown or weakly specified systems, and able to coordinate together a global computation. In order to follow this evolution, computational models pay ever increasing attention to notions such as concurrency and distribution. However, open systems also often depend on another concept, more or less orthogonal to the previous ones, and which seems to have been less investigated in theoretical studies: dynamic binding.
A module calculus for Pure Type Systems
, 1996
"... Several proofassistants rely on the very formal basis of Pure Type Systems. However, some practical issues raised by the development of large proofs lead to add other features to actual implementations for handling namespace management, for developing reusable proof libraries and for separate verif ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
Several proofassistants rely on the very formal basis of Pure Type Systems. However, some practical issues raised by the development of large proofs lead to add other features to actual implementations for handling namespace management, for developing reusable proof libraries and for separate verification of distincts parts of large proofs. Unfortunately, few theoretical basis are given for these features. In this paper we propose an extension of Pure Type Systems with a module calculus adapted from SMLlike module systems for programming languages. Our module calculus gives a theoretical framework addressing the need for these features. We show that our module extension is conservative, and that type inference in the module extension of a given PTS is decidable under some hypotheses over the considered PTS.
Standardization and Confluence for a Lambda Calculus with Generalized Applications
, 2000
"... As a minimal environment for the study of permutative reductions an extension LambdaJ of the untyped lambdacalculus is considered. In this nonterminating system with nontrivial critical pairs, conuence is established by studying triangle properties that allow to treat permutative reductions modul ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
As a minimal environment for the study of permutative reductions an extension LambdaJ of the untyped lambdacalculus is considered. In this nonterminating system with nontrivial critical pairs, conuence is established by studying triangle properties that allow to treat permutative reductions modularly and could be extended to more complex term systems with permutations. Standardization is shown by means of an inductive definition of standard reduction that closely follows the inductive term structure and captures the intuitive notion of standardness even for permutative reductions.
A Typetheoretic Study on Partial Continuations
 Theoretical Computer Science: Exploring New Frontiers of Theoretical Informatics, volume 1872 of Lecture Notes in Computer Science
, 2000
"... . Partial continuations are control operators in functional programming such that a functionlike object is abstracted from a part of the rest of computation, rather than the whole rest of computation. Several dierent formulations of partial continuations have been proposed by Felleisen, Danvy&a ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
(Show Context)
. Partial continuations are control operators in functional programming such that a functionlike object is abstracted from a part of the rest of computation, rather than the whole rest of computation. Several dierent formulations of partial continuations have been proposed by Felleisen, Danvy&Filinski, Hieb et al, and others, but as far as we know, no one ever studied logic for partial continuations, nor proposed a typed calculus of partial continuations which corresponds to a logical system through the CurryHoward isomorphism. This paper gives a simple typetheoretic formulation of a form of partial continuations (which we call delimited continuations), and study its properties. Our calculus does reect the intended operational semantics, and enjoys nice properties such as subject reduction and conuence. By restricting the type of delimiters to be atomic, we obtain the normal form property. We also show a few examples. 1 Introduction The mechanism of rstclass cont...
A Typed Context Calculus
, 2001
"... This paper develops a typed calculus for contexts i.e., lambda terms with "holes". In addition to ordinary lambda terms, the calculus contains labeled holes, hole abstraction and context application for manipulating firstclass contexts. The primary operation for contexts is holefilling, ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
This paper develops a typed calculus for contexts i.e., lambda terms with "holes". In addition to ordinary lambda terms, the calculus contains labeled holes, hole abstraction and context application for manipulating firstclass contexts. The primary operation for contexts is holefilling, which captures free variables. This operation conicts with substitution of the lambda calculus, and a straightforward mixture of the two results in an inconsistent system. We solve this problem by defining a type system that precisely specifies the variablecapturing nature of contexts and that keeps track of bound variable renaming. These mechanisms enable us to define a reduction system that properly integrates betareduction and holefilling. The resulting calculus is ChurchRosser and the type system has the subject reduction property. We believe that the context calculus will serve as a basis for developing a programming language with advanced features that call for manipulation of open terms.
Explicit Universes for the Calculus of Constructions
 Theorem Proving in Higher Order Logics 2002, Springer LNCS 2410
, 2002
"... The implicit universe hierarchy implemented in proof assistants such as Coq and Lego, although really needed, is painful, both for the implementer and the user: it interacts badly with modularity features, errors are difficult to report and to understand. Moreover, typechecking is quite complex. ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
(Show Context)
The implicit universe hierarchy implemented in proof assistants such as Coq and Lego, although really needed, is painful, both for the implementer and the user: it interacts badly with modularity features, errors are difficult to report and to understand. Moreover, typechecking is quite complex.
Upper Bounds for Standardizations and an Application
 The Journal of Symbolic Logic
, 1996
"... We first present a new proof for the standardization theorem, a fundamental theorem in calculus. Since our proof is largely built upon structural induction on lambda terms, we can extract some bounds for the number of fireduction steps in the standard fireduction sequences obtained from transfor ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
(Show Context)
We first present a new proof for the standardization theorem, a fundamental theorem in calculus. Since our proof is largely built upon structural induction on lambda terms, we can extract some bounds for the number of fireduction steps in the standard fireduction sequences obtained from transforming any given fireduction sequences. This result sharpens the standardization theorem and establishes a link between lazy and eager evaluation orders in the context of computational complexity. As an application, we establish a superexponential bound for the number of fireduction steps in fireduction sequences from any given simply typed terms. 1 Introduction The standardization theorem of Curry and Feys [CF58] is a very useful result, stating that if u reduces to v for terms u and v, then there is a standard fireduction from u to v. Using this theorem, we can readily prove the normalization theorem, i.e., a term has a normal form if and only if the leftmost fireduction sequence f...