• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Rank 2 Type Systems and Recursive Definitions (1995)

by Trevor Jim
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 17
Next 10 →

What Are Principal Typings and What Are They Good For?

by Trevor Jim , 1995
"... We demonstrate the pragmatic value of the principal typing property, a property more general than ML's principal type property, by studying a type system with principal typings. The type system is based on rank 2 intersection types and is closely related to ML. Its principal typing property prov ..."
Abstract - Cited by 88 (0 self) - Add to MetaCart
We demonstrate the pragmatic value of the principal typing property, a property more general than ML's principal type property, by studying a type system with principal typings. The type system is based on rank 2 intersection types and is closely related to ML. Its principal typing property provides elegant support for separate compilation, including "smartest recompilation" and incremental type inference, and for accurate type error messages. Moreover, it motivates a novel rule for typing recursive definitions that can type many examples of polymorphic recursion.

Strongly Typed Flow-Directed Representation Transformations (Extended Abstract)

by Allyn Dimock, Robert Muller, Franklyn Turbak, J. B. Wells - 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 "flows-from" (source) and "flows-to" (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.

Rank 2 Intersection Types for Local Definitions and Conditional Expressions

by Ferruccio Damiani , 2003
"... ..."
Abstract - Cited by 11 (4 self) - Add to MetaCart
Abstract not found

ML^F - Raising ML to the Power of System F

by Didier Le Botlan, Didier Rémy - In ICFP ’03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming , 2003
"... We propose a type system ML F that generalizes ML with first-class polymorphism as in System F. We perform partial type reconstruction. As in ML and in opposition to System F, each typable expression admits a principal type, which can be inferred. Furthermore, all expressions of ML are well-typed, ..."
Abstract - Cited by 11 (0 self) - Add to MetaCart
We propose a type system ML F that generalizes ML with first-class polymorphism as in System F. We perform partial type reconstruction. As in ML and in opposition to System F, each typable expression admits a principal type, which can be inferred. Furthermore, all expressions of ML are well-typed, with a possibly more general type than in ML, without any need for type annotation. Only arguments of functions that are used polymorphically must be annotated, which allows to type all expressions of System F as well.

Raising ML to the Power of System F

by Didier Le Botlan, Didier Remy - In ICFP ’03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming , 2003
"... We propose a type system MLF that generalizes ML with first-class polymorphism as in System F. We perform partial type reconstruction. As in ML and in opposition to System F, each typable expression admits a principal type, which can be inferred. Furthermore, all expressions of ML are well-typed, wi ..."
Abstract - Cited by 9 (0 self) - Add to MetaCart
We propose a type system MLF that generalizes ML with first-class polymorphism as in System F. We perform partial type reconstruction. As in ML and in opposition to System F, each typable expression admits a principal type, which can be inferred. Furthermore, all expressions of ML are well-typed, with a possibly more general type than in ML, without any need for type annotation. Only arguments of functions that are used polymorphically must be annotated, which allows to type all expressions of System F as well.

Making Implicit Parameters Explicit

by Atze Dijkstra, S. Doaitse Swierstra , 2005
"... In almost all languages all arguments to functions are to be given explicitly. The Haskell class system however is an exception: functions can have class predicates as part of their type signature, and dictionaries are implicitly constructed and implicitly passed for such predicates, thus relieving ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
In almost all languages all arguments to functions are to be given explicitly. The Haskell class system however is an exception: functions can have class predicates as part of their type signature, and dictionaries are implicitly constructed and implicitly passed for such predicates, thus relieving the programmer from a lot of clerical work and removing clutter from the program text. Unfortunately Haskell maintains a very strict boundary between the implicit and the explicit world; if the implicit mechanisms fail to construct the hidden dictionaries there is no way the programmer can provide help, nor is he able to override the choices made by the implicit mechanisms. In this paper we describe, in the context of Haskell, a mechanism that allows the programmer to explicitly construct implicit arguments. This extension blends well with existing resolution mechanisms, since it only overrides the default behavior. We include a description of the use of partial type signatures, which liberates the programmer from having to choose between specifying a complete type signature or no type signature at all. Finally we show how the system can easily be extended to deal with higher-order predicates, thus enabling the elegant formulation of some forms of generic programming.

Rank-2 Intersection and Polymorphic Recursion

by Ferruccio Damiani - In TLCA’05, volume 2841 of LNCS , 2005
"... Let # be a rank-2 intersection type system. We say that a term is #-simple (or just simple when the system # is clear from the context) if system # can prove that it has a simple type. In this paper we propose new typing rules and algorithms that are able to type recursive definitions that are n ..."
Abstract - Cited by 3 (0 self) - Add to MetaCart
Let # be a rank-2 intersection type system. We say that a term is #-simple (or just simple when the system # is clear from the context) if system # can prove that it has a simple type. In this paper we propose new typing rules and algorithms that are able to type recursive definitions that are not simple. At the best of our knowledge, previous algorithms for typing recursive definitions in the presence of rank-2 intersection types allow only simple recursive definitions to be typed. The proposed rules are also able to type interesting examples of polymorphic recursion (i.e., recursive definitions rec {x = e} where di#erent occurrences of x in e are used with di#erent types). Moreover, the underlying techniques do not depend on particulars of rank-2 intersection, so they can be applied to other type systems.

Iterator types

by Sandra Alves, Maribel Fernández, Mário Florido, Ian Mackie - 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.

Recasting ML^F

by Didier Le Botlan, Didier Rémy , 2007
"... ..."
Abstract - Cited by 3 (2 self) - Add to MetaCart
Abstract not found

Rank 2 Types for Term Graph Rewriting (Extended Abstract)

by Steffen van Bakel
"... We define a notion of type assignment with polymorphic intersection types of rank 2 fora 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 gen ..."
Abstract - Cited by 3 (3 self) - Add to MetaCart
We define a notion of type assignment with polymorphic intersection types of rank 2 fora 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.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University