Results 1 
7 of
7
Type systems
 The Computer Science and Engineering Handbook
, 1997
"... This paper presents an overview of the programming language Modula3, and a more detailed description of its type system. 1 ..."
Abstract

Cited by 204 (1 self)
 Add to MetaCart
This paper presents an overview of the programming language Modula3, and a more detailed description of its type system. 1
Typeful programming
, 1989
"... There exists an identifiable programming style based on the widespread use of type information handled through mechanical typechecking techniques. This typeful programming style is in a sense independent of the language it is embedded in; it adapts equally well to functional, imperative, objectorie ..."
Abstract

Cited by 139 (2 self)
 Add to MetaCart
There exists an identifiable programming style based on the widespread use of type information handled through mechanical typechecking techniques. This typeful programming style is in a sense independent of the language it is embedded in; it adapts equally well to functional, imperative, objectoriented, and algebraic programming, and it is not incompatible with relational and concurrent programming. The main purpose of this paper is to show how typeful programming is best supported by sophisticated type systems, and how these systems can help in clarifying programming issues and in adding power and regularity to languages. We start with an introduction to the notions of types, subtypes and polymorphism. Then we introduce a general framework, derived in part from constructive logic, into which most of the known type systems can be accommodated and extended. The main part of the paper shows how this framework can be adapted systematically to cope with actual programming constructs. For concreteness we describe a particular programming language with advanced features; the emphasis here is on the combination of subtyping and polymorphism. We then discuss how typing concepts apply to large programs, made of collections of modules, and very large programs, made of collections of large programs. We also sketch how typing applies to system programming; an area which by nature escapes rigid typing. In summary, we compare the most common programming styles, suggesting that many of them are compatible with, and benefit from, a typeful discipline.
A theory of primitive objects: secondorder systems
 Proc. ESOP’94  European Symposium on Programming
"... We describe a secondorder calculus of objects. The calculus supports object subsumption, method override, and the type Self. It is constructed as an extension of System F with subtyping, recursion, and firstorder object types. 1. ..."
Abstract

Cited by 57 (8 self)
 Add to MetaCart
We describe a secondorder calculus of objects. The calculus supports object subsumption, method override, and the type Self. It is constructed as an extension of System F with subtyping, recursion, and firstorder object types. 1.
Extensible records in a pure calculus of subtyping
 In Theoretical Aspects of ObjectOriented Programming
, 1994
"... Extensible records were introduced by Mitchell Wand while studying type inference in a polymorphic λcalculus with record types. This paper describes a calculus with extensible records, F <:ρ, that can be translated into a simpler calculus, F <: , lacking any record primitives. Given independe ..."
Abstract

Cited by 38 (9 self)
 Add to MetaCart
Extensible records were introduced by Mitchell Wand while studying type inference in a polymorphic λcalculus with record types. This paper describes a calculus with extensible records, F <:ρ, that can be translated into a simpler calculus, F <: , lacking any record primitives. Given independent axiomatizations of F <:ρ and F <: (the former being an extension of the latter) we show that the translation preserves typing, subtyping, and equality. F <:ρ can then be used as an expressive calculus of extensible records, either directly or to give meaning to yet other languages. We show that F <:ρ can express many of the standard benchmark examples that appear in the literature. Like other record calculi that have been proposed, F <:ρ has a rather complex set of rules but, unlike those other calculi, its rules are justified by a translation to a very simple calculus. We argue that thinking in terms of translations may help in simplifying and organizing the various record calculi that have been proposed, as well as in generating new ones.
An extension of system F with subtyping
, 1991
"... System F is a wellknown typed lcalculus with polymorphic types, which provides a basis for polymorphic programming languages. We study an extension of F, called F <: (pronounced efsub) that combines parametric polymorphism with subtyping. The main focus of the paper is the equational theory of ..."
Abstract
 Add to MetaCart
System F is a wellknown typed lcalculus with polymorphic types, which provides a basis for polymorphic programming languages. We study an extension of F, called F <: (pronounced efsub) that combines parametric polymorphism with subtyping. The main focus of the paper is the equational theory of F <: , which is related to PER models and the notion of parametricity. We study some categorical properties of the theory when restricted to closed terms, including interesting categorical isomorphisms. We also investigate prooftheoretical properties, such as the conservativity of typing judgments with respect to F. We demonstrate by a set of examples how a range of constructs may be encoded in F <: . These include record operations and subtyping hierarchies that are related to features of objectoriented languages. Appears in: International Conference on Theoretical Aspects of Computer Software, T.Ito, A.R.Meyer Eds., Lecture Notes in Computer Science n. 526, pp 750770, Springer Verlag, 19...