Results 11  20
of
68
Program Representation Size in an Intermediate Language with Intersection and Union Types
 In Proceedings of the Third Workshop on Types in Compilation (TIC 2000
, 2000
"... The CIL compiler for core Standard ML compiles whole programs using a novel typed intermediate language (TIL) with intersection and union types and ow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
The CIL compiler for core Standard ML compiles whole programs using a novel typed intermediate language (TIL) with intersection and union types and ow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compiletime space costs that are potentially much greater than are incurred in TILs employing typelevel abstraction or quanti cation. In this paper, we present empirical data on the compiletime space costs of using CIL as an intermediate language. The data shows that these costs can be made tractable by using suciently negrained ow analyses together with standard hashconsing techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve signi cantly better space complexity.
Bridging de Bruijn indices and variable names in explicit substitutions calculi
 Logic Journal of the Interest Group of Pure and Applied Logic (IGPL
, 1996
"... Calculi of explicit substitutions have almost always been presented using de Bruijn indices with the aim of avoiding ffconversion and being as close to machines as possible. De Bruijn indices however, though very suitable for the machine, are difficult to human users. This is the reason for a renew ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
Calculi of explicit substitutions have almost always been presented using de Bruijn indices with the aim of avoiding ffconversion and being as close to machines as possible. De Bruijn indices however, though very suitable for the machine, are difficult to human users. This is the reason for a renewed interest in systems of explicit substitutions using variable names. Formal systems of explicit substitutions using variable names is a new area however and we believe, it should not develop without being welltied to existing work on explicit substitutions. The aim of this paper is to establish a bridge between explicit substitutions using de Bruijn indices and using variable names. In our aim to do so, we provide the tcalculus: a calculus `a la de Bruijn which can be translated into a calculus with explicit substitutions written with variables names. We present explicitly this translation and use it to obtain preservation of strong normalisation for t. Moreover, we show several prope...
ProofTerm Synthesis on Dependenttype Systems via Explicit Substitutions
, 1999
"... Typed #terms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed #terms. The proofsasterms principle can be used to check a proof by type checking the #term extracted from the compl ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
Typed #terms are used as a compact and linear representation of proofs in intuitionistic logic. This is possible since the CurryHoward isomorphism relates proof trees with typed #terms. The proofsasterms principle can be used to check a proof by type checking the #term extracted from the complete proof tree. However, proof trees and typed #terms are built differently. Usually, an auxiliary representation of unfinished proofs is needed, where type checking is possible only on complete proofs. In this paper we present a proof synthesis method for dependenttype systems where typed open terms are built incrementally at the same time as proofs are done. This way, every construction step, not just the last one, may be type checked. The method is based on a suitable calculus where substitutions as well as metavariables are firstclass objects.
Extending a lambdacalculus with Explicit Substitution which Preserves Strong Normalisation into a Confluent Calculus on Open Terms
, 1993
"... The last fifteen years have seen an explosion in work on explicit substitution, most of which is done in the style of the oecalculus. In (Kamareddine & R'ios, 1995a), we extended the calculus with explicit substitutions by turning de Bruijn's metaoperators into objectoperators offering a style o ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
The last fifteen years have seen an explosion in work on explicit substitution, most of which is done in the style of the oecalculus. In (Kamareddine & R'ios, 1995a), we extended the calculus with explicit substitutions by turning de Bruijn's metaoperators into objectoperators offering a style of explicit substitution that differs from that of oe. The resulting calculus, s, remains as close as possible to the calculus from an intuitive point of view and, while preserving strong normalisation (Kamareddine & R'ios, 1995a), is extended in this paper to a confluent calculus on open terms: the secaculus. Since the establishment of these results, another calculus, i, came into being in (Mu~noz Hurtado, 1996) which preserves strong normalisation and is itself confluent on open terms. However, we believe that se still deserves attention because, while offering a new style to work with explicit substitutions, it is able to simulate one step of classical fireduction, whereas i is not. To ...
Explicit Substitutions and Reducibility
 Journal of Logic and Computation
, 2001
"... . We consider reducibility sets dened not by induction on types but by induction on sequents as a tool to prove strong normalization of systems with explicit substitution. To illustrate this point, we give a proof of strong normalization (SN) for simplytyped callbyname ~calculus enriched with op ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
. We consider reducibility sets dened not by induction on types but by induction on sequents as a tool to prove strong normalization of systems with explicit substitution. To illustrate this point, we give a proof of strong normalization (SN) for simplytyped callbyname ~calculus enriched with operators of explicit unary substitutions. The ~calculus, dened by Curien & Herbelin, is a variant of calculus with a let operator that exhibits symmetries such as terms/contexts and callbyname /callbyvalue reduction. The ~calculus embeds various standard calculi (and Gentzen's style sequent calculi too) and as an application we derive the strong normalization of Parigot's simplytyped calculus with explicit substitution. Introduction Explicit substitution in calculus The traditional theory of calculus relies on reduction, that is the capture by a function of its argument followed by the process of substituting this argument to the places where it is used. The ...
Space Issues in Compiling with Intersection and Union Types
, 2000
"... The CIL compiler for core Standard ML compiles whole programs using the CIL typed intermediate language with ow labels and intersection and union types. Flow labels embed flow information in the types and intersection and union types support precise polyvariant type and flow information, without the ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
The CIL compiler for core Standard ML compiles whole programs using the CIL typed intermediate language with ow labels and intersection and union types. Flow labels embed flow information in the types and intersection and union types support precise polyvariant type and flow information, without the use of typelevel abstraction or quantification. Compiletime representations of CIL types and terms are potentially large compared to those for similar types and terms in systems based on quantified types. The listingbased nature of intersection and union types, together with flow label annotations on types, contribute to the size of CIL types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce multiple representation conventions, but incurs a compiletime space cost. This paper presents empirical data on the compiletime space cos...
On Explicit Substitutions and Names (Extended Abstract)
 In Proc. of ICALP'97, LNCS 1256
, 1997
"... ) Eike Ritter and Valeria de Paiva ? School of Computer Science, University of Birmingham Abstract. Calculi with explicit substitutions have found widespread acceptance as a basis for abstract machines for functional languages. In this paper we investigate the relations between variants with de Br ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
) Eike Ritter and Valeria de Paiva ? School of Computer Science, University of Birmingham Abstract. Calculi with explicit substitutions have found widespread acceptance as a basis for abstract machines for functional languages. In this paper we investigate the relations between variants with de Bruijnnumbers, with variable names, with reduction based on raw expressions and calculi with equational judgements. We show the equivalence between these variants, which is crucial in establishing the correspondence between the semantics of the calculus and its implementations. 1 Introduction Explicit substitution calculi (or oecalculi for short) first appeared in a seminal paper by Abadi et al. [1]. The basic idea is that instead of having substitutions as a metalevel operation, as in traditional calculus, we should make them part of the objectlevel calculus. The advantages of this approach are twofold. Firstly, it makes it possible to design much more efficient abstract machines as we a...
Revisiting the Notion of Function
"... Functions play a central role in type theory, logic and computation. We describe how the notions of functionalisation (the way in which functions can be constructed) and instantiation (the process of applying a function to an argument) have been developed in the last century. We explain how both pro ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
Functions play a central role in type theory, logic and computation. We describe how the notions of functionalisation (the way in which functions can be constructed) and instantiation (the process of applying a function to an argument) have been developed in the last century. We explain how both processes were implemented in Frege's Begriffschrift [17], Russell's Ramified Type Theory [42] and the lambdacalculus (originally introduced by Church [12, 13]) showing that the lambdacalculus misses a crucial aspect of functionalisation. We then pay attention to some special forms of function abstraction that do not exist in the lambdacalculus and we show that various logical constructs (e.g., let expressions and definitions and the use of parameters in mathematics), can be seen as forms of the missing part of functionalisation. Our study of the function concept leads...
The theory of calculi with explicit substitutions revisited
 CSL 2007
, 2007
"... Calculi with explicit substitutions (ES) are widely used in different areas of computer science. Complex systems with ES were developed these last 15 years to capture the good computational behaviour of the original systems (with metalevel substitutions) they were implementing. In this paper we fi ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Calculi with explicit substitutions (ES) are widely used in different areas of computer science. Complex systems with ES were developed these last 15 years to capture the good computational behaviour of the original systems (with metalevel substitutions) they were implementing. In this paper we first survey previous work in the domain by pointing out the motivations and challenges that guided the development of such calculi. Then we use very simple technology to establish a general theory of explicit substitutions for the lambdacalculus which enjoys fundamental properties such as simulation of onestep betareduction, confluence on metaterms, preservation of betastrong normalisation, strong normalisation of typed terms and full composition. The calculus also admits a natural translation into Linear Logic’s proofnets.
From HigherOrder to FirstOrder Rewriting
 In Proceedings of the 12th International Conference on Rewriting Techniques and Applications (RTA’01
, 2001
"... . We show how higherorder rewriting may be encoded into ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
. We show how higherorder rewriting may be encoded into