Results 1  10
of
10
On understanding types, data abstraction, and polymorphism
 ACM COMPUTING SURVEYS
, 1985
"... Our objective is to understand the notion of type in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the relevance of recent research to the design of practical programming languages. Objectoriented languag ..."
Abstract

Cited by 827 (14 self)
 Add to MetaCart
Our objective is to understand the notion of type in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the relevance of recent research to the design of practical programming languages. Objectoriented languages provide both a framework and a motivation for exploring the interaction among the concepts of type, data abstraction, and polymorphism, since they extend the notion of type to data abstraction and since type inheritance is an important form of polymorphism. We develop a λcalculusbased model for type systems that allows us to explore these interactions in a simple setting, unencumbered by complexities of production programming languages. The evolution of languages from untyped universes to monomorphic and then polymorphic type systems is reviewed. Mechanisms for polymorphism such as overloading, coercion, subtyping, and parameterization are examined. A unifying framework for polymorphic type systems is developed in terms of the typed λcalculus augmented to include binding of types by quantification as well as binding of values by abstraction. The typed λcalculus is augmented by universal quantification to model generic functions with type parameters, existential quantification and packaging (information hiding) to model abstract data types, and
Nontrivial power types can’t be subtypes of polymorphic types
 In Proc. 4th LICS Symposium
, 1989
"... This paper establishes a new, limitative relation between the polymorphic lambda calculus and the kind of higherorder type theory whichisembodied in the logic of toposes. It is shown that any embedding in a topos of the cartesian closed category of (closed) types of a model of the polymorphic lambd ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
(Show Context)
This paper establishes a new, limitative relation between the polymorphic lambda calculus and the kind of higherorder type theory whichisembodied in the logic of toposes. It is shown that any embedding in a topos of the cartesian closed category of (closed) types of a model of the polymorphic lambda calculus must place the polymorphic types well away from the powertypes! of the topos, in the sense that! is a subtype of a polymorphic type only in the case that is empty (and hence! is terminal). As corollaries, we obtain strengthenings of Reynolds ' result on the nonexistence of settheoretic models of polymorphism.
Typed Applicative Structures and Normalization by Evaluation for System F ω
"... Abstract. We present a normalizationbyevaluation (NbE) algorithm for System F ω with βηequality, the simplest impredicative type theory with computation on the type level. Values are kept abstract and requirements on values are kept to a minimum, allowing many different implementations of the alg ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
(Show Context)
Abstract. We present a normalizationbyevaluation (NbE) algorithm for System F ω with βηequality, the simplest impredicative type theory with computation on the type level. Values are kept abstract and requirements on values are kept to a minimum, allowing many different implementations of the algorithm. The algorithm is verified through a general model construction using typed applicative structures, called type and object structures. Both soundness and completeness of NbE are conceived as an instance of a single fundamental theorem.
A polymorphic λcalculus with Type:Type
 DEC SRC, 130 Lytton Avenue, Palo Alto, CA 94301. May. SRC Research Report
, 1986
"... acknowledgment of the authors and individuals contributors to the work; and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other purpose shall require a license with payment of fee to the Systems Research Center. All rights reserved. Page 1 ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
acknowledgment of the authors and individuals contributors to the work; and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other purpose shall require a license with payment of fee to the Systems Research Center. All rights reserved. Page 1
Fundamentals of object oriented database modelling. Intellektual ~ny Sistemy (Intelligent Systems
 Intelligent Systems
, 1996
"... ..."
CarnegieMellon Univ.
"... Abstract. The model theory of simply typed and polymorphic (secondorder) lambda calculus changes when types are allowed to be empty. For example, the “polymorphic Boolean ” type really has ezuctly two elements in a polymorphic model only if the “absurd” type Vt.t is empty. The standard pr) axioms ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. The model theory of simply typed and polymorphic (secondorder) lambda calculus changes when types are allowed to be empty. For example, the “polymorphic Boolean ” type really has ezuctly two elements in a polymorphic model only if the “absurd” type Vt.t is empty. The standard pr) axioms and equational inference rules which are complete when all types are nonempty are not complete for models with empty types. Without. a little care about variable elimination, the standard rules are not even sound for empty types. We extend the standard system to obtain a complete proof system for models with empty ty@es. The completeness proof is complicated by the fact that equational “term models ” are not so easily obtained: in contrast to the nonempty case, not every theory with empty types is the theory of a single model. 1 Why empty types? Functional languages with polymorphic control constructs and polymorphic data types support an attractive programming style which has been suggested by several authors [5), PI9 PI, b4, P % 1141 [161, m [191, PI. For example, Booleans and conditional operators aGse directly from polymorphic concepts. Namely, the type polybool::=vt.t,t+t is often called the type of polymorphic Booleans. One closed term of type polybool is