ACM Home Page
Please provide us with feedback. Feedback
Types are not sets
Full text PdfPdf (380 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Boston, Massachusetts
Pages: 120 - 124  
Year of Publication: 1973
Author
James H. Morris, Jr.  Xerox Corporation, Palo Alto Research Center (PARC), Palo Alto, California
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 23,   Downloads (12 Months): 91,   Citation Count: 43
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/512927.512938
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
{S} Scott, D., "Outline of a Mathematical Theory of Computation," PRG-2, Oxford University.
 
3
{R} Reynolds, J. C., "A Set-Theoretic Approach to the Concept of Type," Argonne National Laboratories, 1969.
 
4
{D} Dahl, O. J., and Hoare, C. A. R., "Hierarchical Program Structure," Structural Programming, Academic Press, 1972.
5
 
6
{W} Wulf, W. A., et. al., "Hydra: the Kernal of a Multiprocessor Operating System," Department of Computer Science, Carnegie Mellon University, June 1973.

CITED BY  43
Collaborative Colleagues:
James H. Morris, Jr.: colleagues