## Programming with Intersection Types and Bounded Polymorphism (1991)

### Cached

### Download Links

Citations: | 66 - 4 self |

### BibTeX

@TECHREPORT{Pierce91programmingwith,

author = {Benjamin C. Pierce},

title = {Programming with Intersection Types and Bounded Polymorphism},

institution = {},

year = {1991}

}

### OpenURL

### Abstract

representing the official policies, either expressed or implied, of the U.S. Government.

### Citations

3837 |
Introduction to Automata Theory, Languages and Computation
- Hopcroft
- 1979
(Show Context)
Citation Context ...th, which is not present in Ghelli's example. 6.7. TWO-COUNTER MACHINES 122 6.7 Two-counter Machines This section reviews the definition of two-counter Turing machines; see, e.g., Hopcroft and Ullman =-=[78]-=- for more details. 6.7.1. Definition: A two-counter machine is a tuple hhPC; A; B; I 1 ::I w ii, where A and B are nonnegative numbers and PC and I 1 through I w are instructions of the following form... |

1562 | The Definition of Standard ML
- Miller, Tofte, et al.
- 1990
(Show Context)
Citation Context ...(c.f. Section 3.5) to some of the earlier examples. 7.1 Conventions The examples in the remainder of the chapter rely on a prototype typechecker for Fs, implemented in about 5000 lines of Standard ML =-=[93]-=-. Sample sessions with the typechecker have been typeset directly from the output of the running system: text files containing both the input portions of the examples and raw T E X sources for the run... |

1267 |
Smalltalk-80: the language and its implementation
- Goldberg, Robson
- 1983
(Show Context)
Citation Context ...static type systems have been particularly successful in developing formal accounts of the notion of subtyping. In 1984, Cardelli [23] suggested that the basic concepts of object-oriented programming =-=[8, 54, 67]-=- could be understood type-theoretically using the following rough correspondence: Object-oriented languages Typed lambda-calculi Classes Record types Objects Records Subclass Subtype Methods Functions... |

936 | A theory of type polymorphism in progra.mming
- Milner
- 1978
(Show Context)
Citation Context ...un [33] \Gamma; ff ` ` oes�� \Gamma ` 8ff `: oes8ff `: �� (Sub-All-Eq) yields a decidable system. This rule is hard to justify semantically, however. ffl Languages with prenex (ML-style) polym=-=orphism [92, 55]-=- have been investigated quite thoroughly, but we are not aware of a formulation of prenex bounded quantification and, in general, the work of adding subtyping to the ML type system in such a way as to... |

921 |
Categories for the working mathematician
- Lane
- 1998
(Show Context)
Citation Context ...of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus [5, 77], type systems [33, 120], and, for Section 2.4, basic category theory =-=[3, 7, 90, 106]-=-. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus with subtyping, the first-order calculus of intersection types, and the second-order ... |

847 |
A formulation of the simple theory of types
- Church
- 1940
(Show Context)
Citation Context ..., where \Gamma contains a typing assumption for each of the free variables of e. The rules for variables, abstractions, and applications are exactly the same as in the ordinary simply typed -calculus =-=[37]. In add-=-ition, we introduce a rule of subsumption stating that whenever a term e has a type oe and oe is a subtype of another type �� , the type of e may be promoted to �� . 2.2.8. Definition: Thestyp... |

758 | On understanding types, data abstraction, and polymorphism
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...opose some likely candidates in Chapter 8. 1.3 Outline of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus [5, 77], type systems =-=[33, 120]-=-, and, for Section 2.4, basic category theory [3, 7, 90, 106]. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus with subtyping, the firs... |

486 | A semantics of Multiple Inheritance
- Cardelli
- 1984
(Show Context)
Citation Context ...-order -calculus with bounded quantification (F ). These, in turn, are both extensions of the simply typed -calculus enriched with a subtyping relation (s). The latter system was proposed by Cardelli =-=[20, 23] as a &quo-=-t;core calculus of subtyping" in a foundational framework for object-oriented programming languages. 2.2.1. Definition: The types ofsconsist of a set of primitive types (ranged over by the metava... |

471 |
The calculus of constructions
- Coquand, Huet
- 1988
(Show Context)
Citation Context ...so the left-hand side of this diagram is the one that is important here. Higher-order polymorphic -calculi sometimes blur the syntactic distinction between ordinary applications and type applications =-=[47, 48]-=-. In such situations, type reconstruction can be generalized to a notion of argument synthesis [109]. On the other hand, some second-order calculi with subtyping, such as F and Fs, require fully expli... |

394 |
Category Theory for Computing Science
- Barr, Wells
- 1999
(Show Context)
Citation Context ...of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus [5, 77], type systems [33, 120], and, for Section 2.4, basic category theory =-=[3, 7, 90, 106]-=-. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus with subtyping, the first-order calculus of intersection types, and the second-order ... |

391 | Explicit substitutions
- Abadi, Cardelli, et al.
- 1991
(Show Context)
Citation Context ...he extracted type is reindexed, incrementally, as needed. (Related schemes for lazy implementations of the data structures used in typechecking have been studied by Abadi, Cardelli, Curien, and L'evy =-=[1]-=-.) These refinements substantially improve the speed of the implementation, compared to a naive transcription of the typechecking algorithms. But some much more serious efficiency issues remain to be ... |

364 |
Towards a theory of type structure
- Reynolds
- 1974
(Show Context)
Citation Context ...introduced by Cardelli and Wegner [33] in the language Fun. Based on informal ideas by Cardelli and formalized using techniques developed by Mitchell [94], Fun integrated Girard-Reynolds polymorphism =-=[66, 116]-=- with Cardelli's first-order calculus of subtyping [20, 23]. Fun and its relatives have been studied extensively by programming language theorists and designers. Cardelli and Wegner's survey paper giv... |

364 |
Types, abstraction and parametric polymorphism
- Reynolds
- 1983
(Show Context)
Citation Context ...d.s5.5.2.9. Remark: The equational theory of F studied by Cardelli, Martini, Mitchell, and Scedrov includes a more general version of the Eq-Tapp rule, intended to capture the notion of parametricity =-=[119] in the mode-=-l: \Gamma ` e = e 0 2 8ffsoe: �� \Gamma ` OEsoe \Gamma ` OE 0soe \Gamma ` fOE=ffg��s/ \Gamma ` fOE 0 =ffg��s/ \Gamma ` e [OE] = e 0 [OE 0 ] 2 / (Eq-TApp') By analogy, it might be interesti... |

320 |
The Calculi of Lambda Conversion
- Church
- 1941
(Show Context)
Citation Context ...viewing the well-known encoding of the Church numerals in the polymorphic - calculus. (Readers unfamiliar with this encoding may find the more expository presentations in [108, 120] helpful. Also see =-=[38, 15, 103, 63, 29, 27].) We then-=- show how to enrich this encoding to model the "abstract lattice" used in Section 7.5.3, where zero is distinguished from the rest of the numbers. Analogous extensions of the usual encodings... |

305 | Subtyping recursive types
- Amadio, Cardelli
- 1993
(Show Context)
Citation Context ...tension of particular importance for Fs's role in modeling object-oriented languages is recursive types. Again, a great deal has been learned recently about calculi with recursive types and subtyping =-=[2]-=-. But previous work has focused on systems with substantially simpler subtype relations; there is little reason to believe that extending existing techniques will be straightforward. 8.3.3 Union Types... |

303 | N.: Lambda Calculus Notation with Nameless Dummies, a Tool for Automatic Formula Manipulation.; Indag
- Bruijn
- 1972
(Show Context)
Citation Context ...ontexts, statements, and derivations that differ only in the names of bound variables are considered identical. It is formally clearer to think of variables not as names but, as suggested by deBruijn =-=[56]-=-, as pointers into the surrounding context. This point of view is notationally too inconvenient to adopt explicitly in what follows, but will be a significant aid in understanding the behavior of the ... |

292 |
Abstract types have existential types
- Mitchell, Plotkin
- 1985
(Show Context)
Citation Context ... Cardelli and Wegner [33], who use them to obtain a notion of partially abstract type based on Mitchell and Plotkin's correspondence between abstract types (modules or packages) and existential types =-=[97]. This e-=-xtension seems straightforward. However, since bounded existential types can be encoded as bounded polymorphic types using the abbreviation 9ff oe: �� def = 8fi: (8ff oe: ��!fi) ! fi; we can f... |

285 |
Interpre'tation fonctionelle et e'limination des coupures duns l'arithme'tique d'ordre supe'rieure
- Girard
- 1972
(Show Context)
Citation Context ...introduced by Cardelli and Wegner [33] in the language Fun. Based on informal ideas by Cardelli and formalized using techniques developed by Mitchell [94], Fun integrated Girard-Reynolds polymorphism =-=[66, 116]-=- with Cardelli's first-order calculus of subtyping [20, 23]. Fun and its relatives have been studied extensively by programming language theorists and designers. Cardelli and Wegner's survey paper giv... |

244 |
Inheritance is not subtyping
- Cook, Hill, et al.
- 1990
(Show Context)
Citation Context ...[26], and Canning, Cook, Hill, Olthoff, and Mitchell [18]. Bounded quantification also plays a key role in Cardelli's programming language Quest [25, 29] and in the Abel language developed at HP Labs =-=[17, 18, 19, 39]. The orig-=-inal Fun was simplified and slightly generalized by Bruce and Longo [12], and again by Curien and Ghelli [50]. Curien and Ghelli's formulation, called minimal Bounded Fun or F ("F -sub"), is... |

233 |
Principal type schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ...un [33] \Gamma; ff ` ` oes�� \Gamma ` 8ff `: oes8ff `: �� (Sub-All-Eq) yields a decidable system. This rule is hard to justify semantically, however. ffl Languages with prenex (ML-style) polym=-=orphism [92, 55]-=- have been investigated quite thoroughly, but we are not aware of a formulation of prenex bounded quantification and, in general, the work of adding subtyping to the ML type system in such a way as to... |

216 |
A filter lambda model and the completeness of type assignment. J.Symbolic Logic, 48:931--940
- Barendregt, Coppo, et al.
- 1983
(Show Context)
Citation Context ...nd DezaniCiancaglini [40], and independently by Sall'e [46, 127] and Pottinger [110]. Since then, they have been studied extensively by members of the group at the university of Turin and many others =-=[6, 35, 41, 42, 43, 44, 45, 57, 58, 75, 76, 121, 123, 125, 126, 131, 132]-=-. The original motivation for their introduction was the desire for a type-assignment system in the spirit of Curry [52], but with two additional properties: 1. The typing of a term should be invarian... |

210 |
Data types as lattices
- SCOTT
- 1976
(Show Context)
Citation Context ... d 1 \Pi d 2 \Pi d 3 = (d 1 \Pi d 3 ) \Pi (d 2 \Pi d 3 ): 5.1.1.2. Remark: Throughout this section, we work with a fixed, but unspecified, total combinatory algebra D. (For example, Scott's D1 or P ! =-=[128]-=- model [128].) 5.1.1.3. Definition: The set of pure -terms is defined by the following abstract grammar: M ::= x j x: M j M 1 M 2 5.1.1.4. Definition: The set of combinator terms is defined by the fol... |

202 | Type systems
- Cardelli
- 1997
(Show Context)
Citation Context ...t can be invaluable in rare circumstances but that should be used sparingly. It may be advisable to explicitly mark sections of code where glue may be used as "unsafe," in the terminology of=-= Modula-3 [28, 99]-=-. 7.5. MODELING ABSTRACT INTERPRETATION 137 7.5 Modeling Abstract Interpretation Perhaps the most useful property of programming languages with intersection types is that they allow extremely refined ... |

192 | Soft typing
- Cartwright, Fagan
- 1991
(Show Context)
Citation Context ...tersection types and models of polymorphism [81, 104, 136]. Some related extensions to ML-style type inference systems are represented by the notions of refinement types [60, 72, 107] and soft typing =-=[36, 59]-=-. Reynolds provided the first demonstration that intersection types can be used as the basis for practical programming languages [118, 121]. A primary goal of this thesis is to extend Reynolds' work b... |

183 | The Lambda Calculus
- Barendregt
- 1984
(Show Context)
Citation Context ...xpressive power. We propose some likely candidates in Chapter 8. 1.3 Outline of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus =-=[5, 77]-=-, type systems [33, 120], and, for Section 2.4, basic category theory [3, 7, 90, 106]. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus ... |

172 | Refinement types for ML
- Freeman, Pfenning
- 1991
(Show Context)
Citation Context ...nd the relationship between intersection types and models of polymorphism [81, 104, 136]. Some related extensions to ML-style type inference systems are represented by the notions of refinement types =-=[60, 72, 107]-=- and soft typing [36, 59]. Reynolds provided the first demonstration that intersection types can be used as the basis for practical programming languages [118, 121]. A primary goal of this thesis is t... |

172 |
Basic Category Theory for Computer Scientists
- Pierce
- 1991
(Show Context)
Citation Context ...of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus [5, 77], type systems [33, 120], and, for Section 2.4, basic category theory =-=[3, 7, 90, 106]-=-. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus with subtyping, the first-order calculus of intersection types, and the second-order ... |

170 |
Introduction to Combinators and -Calculus
- Hindley, Seldin
- 1986
(Show Context)
Citation Context ...xpressive power. We propose some likely candidates in Chapter 8. 1.3 Outline of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus =-=[5, 77]-=-, type systems [33, 120], and, for Section 2.4, basic category theory [3, 7, 90, 106]. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus ... |

160 |
The essence of Algol
- Reynolds
- 1981
(Show Context)
Citation Context ... the notions of refinement types [60, 72, 107] and soft typing [36, 59]. Reynolds provided the first demonstration that intersection types can be used as the basis for practical programming languages =-=[118, 121]-=-. A primary goal of this thesis is to extend Reynolds' work by studying the interaction of intersection types with other important type-theoretic principles, primarily parametric polymorphism, and to ... |

157 |
SIMULA–an ALGOL-based simulation language
- Dahl, Nygaard
- 1966
(Show Context)
Citation Context ...static type systems have been particularly successful in developing formal accounts of the notion of subtyping. In 1984, Cardelli [23] suggested that the basic concepts of object-oriented programming =-=[8, 54, 67]-=- could be understood type-theoretically using the following rough correspondence: Object-oriented languages Typed lambda-calculi Classes Record types Objects Records Subclass Subtype Methods Functions... |

142 | Operations on records
- Cardelli, Mitchell
- 1989
(Show Context)
Citation Context ...uctors, and a new typechecking algorithm must be given and proved correct. Luckily, the n' constructor has been extensively studied in recent years --- albeit for languages without intersection types =-=[112, 135, 82, 83, 113, 114, 32, 31, 71, 70, 115]-=-. We hope that existing intuitions and techniques can be extended to Fsstraightforwardly. 8.4. IMPLEMENTATION 160 8.3.2 Recursive Types Another extension of particular importance for Fs's role in mode... |

138 | Corrigendum : Complete type inference for simple object - Wand - 1988 |

129 |
Typechecking records and variants in a natural extension of ML
- Remy
- 1989
(Show Context)
Citation Context ...uctors, and a new typechecking algorithm must be given and proved correct. Luckily, the n' constructor has been extensively studied in recent years --- albeit for languages without intersection types =-=[112, 135, 82, 83, 113, 114, 32, 31, 71, 70, 115]-=-. We hope that existing intuitions and techniques can be extended to Fsstraightforwardly. 8.4. IMPLEMENTATION 160 8.3.2 Recursive Types Another extension of particular importance for Fs's role in mode... |

116 | Inheritance as implicit coercion
- Breazu-Tannen, Coquand, et al.
- 1991
(Show Context)
Citation Context ...umber well-studied typed models: the ordinary polymorphic -calculus extended with surjective tuples. This translation extends work on the semantics of F by Breazu-Tannen, Coquand, Gunter, and Scedrov =-=[10] by interp-=-reting intersection types as "coherent tuples" in the target language. An alternative explanation of the semantics of Fsis given by an equational theory of equivalences between Fsterms; this... |

114 | Type inference for record concatenation and multiple inheritance
- Wand
- 1991
(Show Context)
Citation Context ...uctors, and a new typechecking algorithm must be given and proved correct. Luckily, the n' constructor has been extensively studied in recent years --- albeit for languages without intersection types =-=[112, 135, 82, 83, 113, 114, 32, 31, 71, 70, 115]-=-. We hope that existing intuitions and techniques can be extended to Fsstraightforwardly. 8.4. IMPLEMENTATION 160 8.3.2 Recursive Types Another extension of particular importance for Fs's role in mode... |

112 | An extension of system F with subtyping
- Cardelli, Martini, et al.
- 1994
(Show Context)
Citation Context ...ated systems have been studied by Bruce and Longo [12], Martini [91], Breazu-Tannen, Coquand, Gunter, and Scedrov [10], Cardone [34], Cardelli and Longo [29], Cardelli, Martini, Mitchell, and Scedrov =-=[30]-=-, Curien and Ghelli [50, 51], and Bruce and Mitchell [14]. F has been extended to include record types and richer notions of inheritance by Cardelli and Mitchell [32], Bruce [11], Cardelli [26], and C... |

109 | Design of the programming language Forsythe
- Reynolds
- 1996
(Show Context)
Citation Context ...nd DezaniCiancaglini [40], and independently by Sall'e [46, 127] and Pottinger [110]. Since then, they have been studied extensively by members of the group at the university of Turin and many others =-=[6, 35, 41, 42, 43, 44, 45, 57, 58, 75, 76, 121, 123, 125, 126, 131, 132]-=-. The original motivation for their introduction was the desire for a type-assignment system in the spirit of Curry [52], but with two additional properties: 1. The typing of a term should be invarian... |

103 | Complete restrictions of the Intersection Type Discipline
- Bakel
- 1992
(Show Context)
Citation Context ...nd DezaniCiancaglini [40], and independently by Sall'e [46, 127] and Pottinger [110]. Since then, they have been studied extensively by members of the group at the university of Turin and many others =-=[6, 35, 41, 42, 43, 44, 45, 57, 58, 75, 76, 121, 123, 125, 126, 131, 132]-=-. The original motivation for their introduction was the desire for a type-assignment system in the spirit of Curry [52], but with two additional properties: 1. The typing of a term should be invarian... |

102 | On the type structure of Standard ML
- Harper, Mitchell
- 1993
(Show Context)
Citation Context ...erivations involving them; conversely, a typed semantics may be given to a language where the entire burden of discovering typing derivations is placed on the typechecker. Indeed, Harper and Mitchell =-=[69]-=- have promoted 2.5. EXPRESSIVENESS OF THE INTERSECTION TYPE DISCIPLINE 29 a view of ML, the quintessential implicitly typed polymorphic language, as a typed -calculus in the style of Church. Thus, the... |

102 |
Polymorphic type inference and containment
- Mitchell
- 1988
(Show Context)
Citation Context ...morphism The notion of bounded quantification was introduced by Cardelli and Wegner [33] in the language Fun. Based on informal ideas by Cardelli and formalized using techniques developed by Mitchell =-=[94]-=-, Fun integrated Girard-Reynolds polymorphism [66, 116] with Cardelli's first-order calculus of subtyping [20, 23]. Fun and its relatives have been studied extensively by programming language theorist... |

87 |
A modest model of records, inheritance, and bounded quantification
- Bruce, Longo
(Show Context)
Citation Context ...er kinds [24]. Curien and Ghelli [50, 2.6. BOUNDED POLYMORPHISM 31 63] address a number of syntactic properties of F . Semantic aspects of closely related systems have been studied by Bruce and Longo =-=[12]-=-, Martini [91], Breazu-Tannen, Coquand, Gunter, and Scedrov [10], Cardone [34], Cardelli and Longo [29], Cardelli, Martini, Mitchell, and Scedrov [30], Curien and Ghelli [50, 51], and Bruce and Mitche... |

81 | Partial polymorphic type inference and higher-order unification
- Pfenning
- 1988
(Show Context)
Citation Context ...ource expression e and context \Gamma. An algorithm that performs this task is a type reconstruction procedure. For certain calculi (e.g., languages based on system F with partial type reconstruction =-=[9, 102, 109]-=-), it is possible to pick out a subset of the source expressions, the fully typed terms, with the special property that each fully typed term has at most one typing derivation for a particular choice ... |

78 | Objects as Closures: Abstract Semantics of Object-Oriented Languages - Reddy - 1988 |

71 |
Three approaches to type structure
- Reynolds
- 1985
(Show Context)
Citation Context ...opose some likely candidates in Chapter 8. 1.3 Outline of Results The development of the technical chapters may be easier to follow for readers with some background in -calculus [5, 77], type systems =-=[33, 120]-=-, and, for Section 2.4, basic category theory [3, 7, 90, 106]. Chapter 2 is a self-contained introduction to the major precursors of the Fscalculus: the simply typed -calculus with subtyping, the firs... |

66 |
F-bounded quantification for object-oriented programming
- Canning, Cook, et al.
- 1989
(Show Context)
Citation Context ...d Mitchell [14]. F has been extended to include record types and richer notions of inheritance by Cardelli and Mitchell [32], Bruce [11], Cardelli [26], and Canning, Cook, Hill, Olthoff, and Mitchell =-=[18]-=-. Bounded quantification also plays a key role in Cardelli's programming language Quest [25, 29] and in the Abel language developed at HP Labs [17, 18, 19, 39]. The original Fun was simplified and sli... |

64 |
Interfaces for strongly-typed object-oriented programming
- Canning, Cook, et al.
- 1989
(Show Context)
Citation Context ...[26], and Canning, Cook, Hill, Olthoff, and Mitchell [18]. Bounded quantification also plays a key role in Cardelli's programming language Quest [25, 29] and in the Abel language developed at HP Labs =-=[17, 18, 19, 39]. The orig-=-inal Fun was simplified and slightly generalized by Bruce and Longo [12], and again by Curien and Ghelli [50]. Curien and Ghelli's formulation, called minimal Bounded Fun or F ("F -sub"), is... |

62 |
PER models of subtyping, recursive types and higher-order polymorphism
- Bruce, Mitchell
- 1992
(Show Context)
Citation Context ...artini [91], Breazu-Tannen, Coquand, Gunter, and Scedrov [10], Cardone [34], Cardelli and Longo [29], Cardelli, Martini, Mitchell, and Scedrov [30], Curien and Ghelli [50, 51], and Bruce and Mitchell =-=[14]-=-. F has been extended to include record types and richer notions of inheritance by Cardelli and Mitchell [32], Bruce [11], Cardelli [26], and Canning, Cook, Hill, Olthoff, and Mitchell [18]. Bounded q... |

59 | A record calculus based on symmetric concatenation
- Harper, Pierce
- 1991
(Show Context)
Citation Context |

58 | Structural subtyping and the notion of power type
- Cardelli
- 1988
(Show Context)
Citation Context ...ogramming language theorists and designers. Cardelli and Wegner's survey paper gives the first programming examples using bounded quantification; more are developed in Cardelli's study of power kinds =-=[24]-=-. Curien and Ghelli [50, 2.6. BOUNDED POLYMORPHISM 31 63] address a number of syntactic properties of F . Semantic aspects of closely related systems have been studied by Bruce and Longo [12], Martini... |

58 | An extension of Standard ML modules with subtyping and inheritance - Mitchell, Meldal, et al. - 1991 |