Results 1 
8 of
8
Strongly Typed FlowDirected Representation Transformations (Extended Abstract)
 In ICFP ’97 [ICFP97
, 1997
"... We present a new framework for transforming data representations in a strongly typed intermediate language. Our method allows both value producers (sources) and value consumers (sinks) to support multiple representations, automatically inserting any required code. Specialized representations can be ..."
Abstract

Cited by 29 (13 self)
 Add to MetaCart
We present a new framework for transforming data representations in a strongly typed intermediate language. Our method allows both value producers (sources) and value consumers (sinks) to support multiple representations, automatically inserting any required code. Specialized representations can be easily chosen for particular source/sink pairs. The framework is based on these techniques: 1. Flow annotated types encode the "flowsfrom" (source) and "flowsto" (sink) information of a flow graph. 2. Intersection and union types support (a) encoding precise flow information, (b) separating flow information so that transformations can be well typed, (c) automatically reorganizing flow paths to enable multiple representations. As an instance of our framework, we provide a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions.
A Calculus with Polymorphic and Polyvariant Flow Types
"... We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and ..."
Abstract

Cited by 28 (11 self)
 Add to MetaCart
We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since # CIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.
Rank 2 Type Systems and Recursive Definitions
, 1995
"... We demonstrate an equivalence between the rank 2 fragments of the polymorphic lambda calculus (System F) and the intersection type discipline: exactly the same terms are typable in each system. An immediate consequence is that typability in the rank 2 intersection system is DEXPTIMEcomplete. We int ..."
Abstract

Cited by 26 (1 self)
 Add to MetaCart
We demonstrate an equivalence between the rank 2 fragments of the polymorphic lambda calculus (System F) and the intersection type discipline: exactly the same terms are typable in each system. An immediate consequence is that typability in the rank 2 intersection system is DEXPTIMEcomplete. We introduce a rank 2 system combining intersections and polymorphism, and prove that it types exactly the same terms as the other rank 2 systems. The combined system suggests a new rule for typing recursive definitions. The result is a rank 2 type system with decidable type inference that can type some interesting examples of polymorphic recursion. Finally,we discuss some applications of the type system in data representation optimizations such as unboxing and overloading.
The Longest Perpetual Reductions in Orthogonal Expression Reduction Systems
 In: Proc. of the 3 rd International Conference on Logical Foundations of Computer Science, LFCS'94, A. Nerode and Yu.V. Matiyasevich, eds., Springer LNCS
, 1994
"... We consider reductions in Orthogonal Expression Reduction Systems (OERS), that is, Orthogonal Term Rewriting Systems with bound variables and substitutions, as in the calculus. We design a strategy that for any given term t constructs a longest reduction starting from t if t is strongly normaliza ..."
Abstract

Cited by 18 (8 self)
 Add to MetaCart
We consider reductions in Orthogonal Expression Reduction Systems (OERS), that is, Orthogonal Term Rewriting Systems with bound variables and substitutions, as in the calculus. We design a strategy that for any given term t constructs a longest reduction starting from t if t is strongly normalizable, and constructs an infinite reduction otherwise. The Conservation Theorem for OERSs follows easily from the properties of the strategy. We develop a method for computing the length of a longest reduction starting from a strongly normalizable term. We study properties of pure substitutions and several kinds of similarity of redexes. We apply these results to construct an algorithm for computing lengths of longest reductions in strongly persistent OERSs that does not require actual transformation of the input term. As a corollary, we have an algorithm for computing lengths of longest developments in OERSs. 1 Introduction A strategy is perpetual if, given a term t, it constructs an infinit...
Addendum to `New notions of reduction and nonsemantic proofs of βstrong normalization in typed λcalculi
, 1995
"... ..."
On Strong Normalization in the Intersection Type Discipline (Extended Abstract)
"... We give a proof for the strong normalization result in the intersection type discipline, which we obtain by putting together some wellknown results and proof techniques. Our proof uses a variant of Klop's extended calculus, for which it is shown that strong normalization is equivalent to weak ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
We give a proof for the strong normalization result in the intersection type discipline, which we obtain by putting together some wellknown results and proof techniques. Our proof uses a variant of Klop's extended calculus, for which it is shown that strong normalization is equivalent to weak normalization. This is
Perpetuality and Uniform Normalization in Orthogonal Rewrite Systems
 INFORMATION AND COMPUTATION
"... We present two characterizations of perpetual redexes, which are redexes whose contractions retain the possibility of infinite reductions. These characterizations generalize and strengthen existing criteria for the perpetuality of redexes in orthogonal Term Rewriting Systems and the calculus due ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We present two characterizations of perpetual redexes, which are redexes whose contractions retain the possibility of infinite reductions. These characterizations generalize and strengthen existing criteria for the perpetuality of redexes in orthogonal Term Rewriting Systems and the calculus due to Bergstra and Klop, and others. To unify our results with those in the literature, we introduce Contextsensitive Conditional Expression Reduction Systems (CCERSs) and prove confluence for orthogonal CCERSs. We then define a perpetual onestep reduction strategy which enables one to construct minimal (w.r.t. Levy's permutation ordering on reductions) infinite reductions in orthogonal CCERSs. We then prove (1) perpetuality (in a specific context) of a redex whose contraction does not erase potentially infinite arguments, which are possibly finite (i.e., strongly normalizable) arguments that may become infinite after a number of outside steps, and (2) perpetuality (in every con...
Conservation and Uniform Normalization in Lambda Calculi With Erasing Reductions
, 2002
"... For a notion of reduction in a #calculus one can ask whether a term satises conservation and uniform normalization. Conservation means that singlestep reductions of the term preserve innite reduction paths from the term. Uniform normalization means that either the term will have no reduction path ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
For a notion of reduction in a #calculus one can ask whether a term satises conservation and uniform normalization. Conservation means that singlestep reductions of the term preserve innite reduction paths from the term. Uniform normalization means that either the term will have no reduction paths leading to a normal form, or all reduction paths will lead to a normal form.