Results 11  20
of
20
Iterator types
 IN PROCEEDINGS OF FOUNDATIONS OF SOFTWARE SCIENCE AND COMPUTATION STRUCTURES, (FOSSACS’07), VOLUME 4423 OF LNCS
, 2007
"... System L is a linear λcalculus with numbers and an iterator, which, although imposing linearity restrictions on terms, has all the computational power of Gödel’s System T. System L owes its power to two features: the use of a closed reduction strategy (which permits the construction of an iterator ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
System L is a linear λcalculus with numbers and an iterator, which, although imposing linearity restrictions on terms, has all the computational power of Gödel’s System T. System L owes its power to two features: the use of a closed reduction strategy (which permits the construction of an iterator on an open function, but only iterates the function after it becomes closed), and the use of a liberal typing rule for iterators based on iterative types. In this paper, we study these new types, and show how they relate to intersection types. We also give a sound and complete type reconstruction algorithm for System L.
On Typability for Rank2 Intersection Types with Polymorphic Recursion ∗
"... We show that typability for a natural form of polymorphic recursive typing for rank2 intersection types is undecidable. Our proof involves characterizing typability as a context free language (CFL) graph problem, which may be of independent interest, and reduction from the boundedness problem for T ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We show that typability for a natural form of polymorphic recursive typing for rank2 intersection types is undecidable. Our proof involves characterizing typability as a context free language (CFL) graph problem, which may be of independent interest, and reduction from the boundedness problem for Turing machines. We also show a property of the type system which, in conjunction with the undecidability result, disproves a misconception about the MilnerMycroft type system. We also show undecidability of a related program analysis problem. 1
Type Inference for Recursive Definitions
 In Proc. 14th Ann. IEEE Symp. Logic in Comput. Sci
, 2000
"... We consider type systems that combine universal types, recursive types, and object types. We study type inference in these systems under a rank restriction, following Leivant's notion of rank. To motivate our work, we present several examples showing how our systems can be used to type programs enco ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We consider type systems that combine universal types, recursive types, and object types. We study type inference in these systems under a rank restriction, following Leivant's notion of rank. To motivate our work, we present several examples showing how our systems can be used to type programs encountered in practice. We show that type inference in the rankk system is decidable for k # 2 and undecidable for k # 3. (Similar results based on different techniques are known to hold for System F, without recursive types and object types.) Our undecidability result is obtained by a reduction from a particular adaptation (which we call "regular") of the semiunification problem and whose undecidability is, interestingly, obtained by methods totally different from those used in the case of standard (or finite) semiunification. Keywords: type systems, type inference, lambda calculus, unification, software specification. 1 Introduction 1.1 Background and Motivation Type inference, the ...
Rank 2 types for term graph rewriting
 In TIP’02, volume 75 of ENTCS
, 2003
"... We define a notion of type assignment with polymorphic intersection types of rank 2 for a term graph rewriting language that expresses sharing and cycles. We show that type assignment is decidable through defining, using the extended notion of unification from [5], a notion of principal pair which g ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We define a notion of type assignment with polymorphic intersection types of rank 2 for a term graph rewriting language that expresses sharing and cycles. We show that type assignment is decidable through defining, using the extended notion of unification from [5], a notion of principal pair which generalizes ML’s principal type property.
On the relation between rank 2 intersection types and simple types
 In Joint Conference on Declarative Programming (AGP’2002
, 2002
"... Abstract. The Rank 2 Intersection Type System is the intersection type system with more impact in the area of functional programming languages. This system includes the powerful type system of the functional language ML keeping the decidability of type inference. The Simple Type System is the basis ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. The Rank 2 Intersection Type System is the intersection type system with more impact in the area of functional programming languages. This system includes the powerful type system of the functional language ML keeping the decidability of type inference. The Simple Type System is the basis of every type system for programming languages. In this paper we prove that it is possible to transform any term typable by a Simple type in the Rank 2 Intersection Type System into a new term typable in the Simple Type System with the same type. We define that transformation independently of any type information. Then we prove the correctness of the presented transformation, in the sense that it preserves types of terms typable by Simple Types. 1
Subject Reduction vs Intersection / Union Types in λµ ˜µ Extended abstract
"... Abstract. This paper defines intersection and union type assignment for the calculus λµ ˜µ [9], a proofterm syntax for Gentzen’s classical sequent calculus. We show that this notion is closed for subjectexpansion, and show that it needs to be restricted to satisfy subjectreduction as well, even w ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. This paper defines intersection and union type assignment for the calculus λµ ˜µ [9], a proofterm syntax for Gentzen’s classical sequent calculus. We show that this notion is closed for subjectexpansion, and show that it needs to be restricted to satisfy subjectreduction as well, even when limiting reduction to (confluent) callbyname or callbyvalue reduction, making it unsuitable to define a semantics.
unknown title
"... The quest for type inference with firstclasspolymorphic types Programming languages considerably benefit from static typechecking. In practice however, types may sometimes trammel programmers, for two opposite reasons. On the one hand, type annotations may quickly become a burden to write; while ..."
Abstract
 Add to MetaCart
The quest for type inference with firstclasspolymorphic types Programming languages considerably benefit from static typechecking. In practice however, types may sometimes trammel programmers, for two opposite reasons. On the one hand, type annotations may quickly become a burden to write; while they usefully serve as documentation for toplevel functions, they also obfuscatethe code when every local function must be decorated. On the other hand, since types are only approximations, any type system willreject programs that are perfectly wellbehaved and that could be accepted by another more expressive one; hence, sharp programmers may be irritated in such situations.
AT DIFFERENT RANKS
, 1999
"... We consider a polymorphic type system (System F) with recursive types for the lambda calculus with constants. We use Leivant’s notion of rank to delimit the boundaries for decidable and undecidable type inference in our system. More precisely, we show that type inference in our system is undecidable ..."
Abstract
 Add to MetaCart
We consider a polymorphic type system (System F) with recursive types for the lambda calculus with constants. We use Leivant’s notion of rank to delimit the boundaries for decidable and undecidable type inference in our system. More precisely, we show that type inference in our system is undecidable at rank k ≥ 3. Similar results are known to hold for System F without recursive types. Our undecidability result is obtained by a reduction from a particular adaptation of the semiunification problem (socalled “regular semiunification”) whose undecidability is, interestingly, obtained by methods totally different from those used in the case of standard (or finite) semiunification. Type inference for a rank1 restriction of our system is known to be decidable. A simple modification to the way unification is performed (socalled “regular unification”) is all that is required. We also conjecture that type inference at rank2 is decidable and equivalent to finding regular solutions for instances of a particular form of semiunification known as “acyclic semiunification”.
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
 Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to betterquality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and typesystems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable typesystems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of languageextension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbolbased computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often moreuseful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.
permission. On Typability for Rank2 Intersection Types with Polymorphic Recursion ∗
"... personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires pri ..."
Abstract
 Add to MetaCart
personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific