DOI:10.1145/6041.6042 - Corpus ID: 2921816
On understanding types, data abstraction, and polymorphism
@article{Cardelli1985OnUT,
title={On understanding types, data abstraction, and polymorphism},
author={Luca Cardelli and Peter Wegner},
journal={ACM Comput. Surv.},
year={1985},
volume={17},
pages={471-522},
url={https://api.semanticscholar.org/CorpusID:2921816}
}- L. Cardelli, P. Wegner
- Published in CSUR 10 December 1985
- Computer Science
- ACM Comput. Surv.
A λ-calculus-based model for type systems that allows us to explore the interaction among the concepts of type, data abstraction, and polymorphism in a simple setting, unencumbered by complexities of production programming languages is developed.
2,130 Citations
Topics
Object-oriented Languages (opens in a new tab)Subtyping (opens in a new tab)Bounded Quantification (opens in a new tab)Polymorphic Programming Languages (opens in a new tab)Polymorphic Type Systems (opens in a new tab)Parametric Polymorphism (opens in a new tab)Programming Language (opens in a new tab)Typed L-calculus (opens in a new tab)Type Systems (opens in a new tab)L-calculus (opens in a new tab)
2,130 Citations
A study of semantics, types and languages for databases and object-oriented programming
- A. OhoriP. BunemanVal Breazu-Tannen
- Computer Science
- 1989
This thesis attempts to construct one such formalism and proposes a programming language that uniformly integrate all of the above features and a prototype implementation of Machiavelli that embodies most of the features presented in this thesis has been done in Standard ML of New Jersey.
Higher-Order Subtyping with Type Intervals
- Sandro Stucki
- Computer Science
- 2017
This dissertation proposes type intervals as a unifying concept for expressing (1--3) and other related constructs and develops an extension of F-omega with interval kinds as a formal theory of higher-order subtyping with type intervals, and shows how the familiar concepts ofHigher-order bounded quantification, bounded operator abstraction and singleton kinds can all be encoded in a semantics-preserving way using interval kinds.
Polymorphic Type Inference for Languages with Overloading and Subtyping
- Geoffrey Smith
- Computer Science
- 1991
This dissertation extends the Hindley/Milner/Damas type system to incorporate overloading and subtyping, and proves that it is undecidable whether a given constraint set is satisfiable; this difficulty leads us to impose restrictions on overloading.
September 1990 Polymorphism and Type Inference in Database Programming
- P. BunemanA. Ohori
- Computer Science
- 2014
The polymorphic type system of ML can be extended in two ways that make it appropriate as the basis of a database programming language. The first is an extension to the language of types that…
Polymorphic type inference and abstract data types
- Konstantin LäuferMartin Odersky
- Computer Science
- 1992
This work shows how to add significant expressive power to statically typed functional languages with explicit type variables by incorporating first-class abstract types as an extension of algebraic data types and extends record types to allow abstract components.
Polymorphism and type inference in database programming
- P. BunemanA. Ohori
- Computer Science
- 1996
An extension to the type system of ML that captures the polymorphic nation of field selection together with a techniques that generalizes relational operators to arbitrary data structures provides a statically typed language in which generalized relational databases may be cleanly represented as typed structures.
Polymorphic typing of an algorithmic language
- X. Leroy
- Computer Science
- 1992
Two new approaches to the polymorphic typing of these non-applicative features of ML with imperative features proposed so far are studied, one of which relies on switching to "by-name" semantics for the constructs of polymorphism, instead of the usual " by-value" semantics.
Polymorphism and Inference in Database Programming
- P. BunemanA. Ohori
- Computer Science
- 2014
The polymorphic type system of ML can be extended in two ways to make it the appropriate basis of a database programming language. The first is an extension to the language of types that captures the…
Contextual polymorphism
- Glen Ditchfield
- Computer Science
- 1992
Contextual polymorphism is a variant of parametric polymorphism that is based on contexts, which are abstractions of collections of declarations, and assertions, which link polymorphic routines to the environments that call them.
Programming with intersection types, union types, and polymorphism
- B. Pierce
- Computer Science, Mathematics
- 1991
This report summarizes a preliminary investigation of the expressiveness of a programming language combining intersection types, union types, and polymorphism.
...
...
66 References
A Theory of Type Polymorphism in Programming
- R. Milner
- Computer ScienceJ. Comput. Syst. Sci.
- 1978
On the unification of data and program abstraction in Ada
- P. Wegner
- Computer Science
- 1983
It is suggested in the conclusion that the understanding of abstraction for object-oriented languages and of other language design, implementation, and environment issues will have progressed sufficiently by 1985 to warrant the design of a successor to Ada by the late 1980s.
Abstract types have existential types
- John C. MitchellG. Plotkin
- Computer Science, Mathematics
- 1985
This work uses a second-order typed lambda calculus SOL to show how data algebras may be given types, passed as parameters, and returned as results of function calls.
HOPE: An experimental applicative language
- R. BurstallDavid B. MacQueenD. Sannella
- Computer ScienceLISP Conference
- 1980
An applicative language called HOPE is described and discussed, to produce a very simple programming language which encourages the construction of clear and manipulable programs.
Type Inference and Type Containment
- John C. Mitchell
- Computer Science
- 1984
Type inference, the process of assigning types to untyped expressions, may be motivated by the design of a typed language or semantical considerations on the meanings of types and expressions, or by a general class of semantic models of type inference.
GALILEO: a strongly-typed, interactive conceptual language
- A. AlbanoL. CardelliR. Orsini
- Computer Science
- 1985
Galileo is a strongly-typed, interactive programming language designed specifically to support semantic data model features (classification, aggregation, and specialization), as well as the abstraction mechanisms of modern programming languages (types, abstract types, and modularization).
Three Approaches to Type Structure
- J. C. Reynolds
- Computer ScienceTAPSOFT, Vol.1
- 1985
We examine three disparate views of the type structure of programming languages: Milner's type deduction system and polymorphic let construct, the theory of subtypes and generic operators, and the…
A Kernel Language for Abstract Data Types and Modules
- R. BurstallB. Lampson
- Computer Science, Mathematics
- 1984
This work uses typed lambda calculus with bindings, declarations, and types as first-class values to build modules, interfaces and implementations, abstract data types, generic types, recursive types, and unions in a concise operational semantics given by inference rules.
Type definitions with parameters
- M. Solomon
- Computer Science
- 1978
This paper shows that unless the use of such parameterized definitions is restricted, new (unparameterized) types may be defined which more closely resemble deterministic context-free languages.
...
...
Related Papers
Showing 1 through 3 of 0 Related Papers

