Types are not sets
The work
| Authors | James H. Morris |
|---|---|
| Type | inproceedings |
| Year | 1973 |
| Citekey | morris1973types |
Where it appeared
| Published in | 1st ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL) |
|---|---|
| Publisher | Association for Computing Machinery |
| Pages | 120--124 |
Identifiers
| DOI | 10.1145/512927.512938 |
|---|---|
| OpenAlex | W2087828835 |
Access
| Landing page | https://doi.org/10.1145/512927.512938 |
|---|
Abstract
The title is not a statement of fact, of course, but an opinion about how language designers should think about types. There has been a natural tendency to look to mathematics for a consistent, precise notion of what types are. The point of view there is extensional: a type is a subset of the universe of values. While this approach may have served its purpose quite adequately in mathematics, defining programming language types in this way ignores some vital ideas. Some interesting developments following the extensional approach are the ALGOL-68 type system [vW], Scott's theory [S], and Reynolds' system [R]. While each of these lend valuable insight to programming languages, I feel they miss an important aspect of types.Rather than worry about what types are I shall focus on the role of type checking. Type checking seems to serve two distinct purposes: authentication and secrecy. Both are useful when a programmer undertakes to implement a class of abstract objects to be used by many other programmers. He usually proceeds by choosing a representation for the objects in terms of other objects and then writes the required operations to manipulate them.
How it got here
| How it got here | agent via crossref |
|---|---|
| Added | 2026-08-25 00:00 UTC |
| Approved by | a person 2026-08-25 14:03 UTC |
Filed under
Cite it as
@inproceedings{morris1973types,
title = {Types are not sets},
author = {James H. Morris},
year = {1973},
booktitle = {1st ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL)},
pages = {120--124},
publisher = {Association for Computing Machinery},
doi = {10.1145/512927.512938},
}
This record lives at https://refs.drheap.org/morris1973types/ and will keep doing so.