|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Guttag , James Horning , John Williams, FP with data abstraction and strong typing, Proceedings of the 1981 conference on Functional programming languages and computer architecture, p.11-24, October 18-22, 1981, Portsmouth, New Hampshire, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
James W. Thatcher , Eric G. Wagner , Jesse B. Wright, Data type specification: Parameterization and the power of specification techniques, Proceedings of the tenth annual ACM symposium on Theory of computing, p.119-132, May 01-03, 1978, San Diego, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Amal Ahmed , Robert Bruce Findler , Jacob Matthews , Philip Wadler, Blame for all, Proceedings for the 1st workshop on Script to Program Evolution, p.1-13, July 06-06, 2009, Genova, Italy
|
|