Some Ideas on Data Types in High Level Languages
WE explore some new and old ideas concerning data types; what a data type is, overloading operators, when and how implicit conversions between programmer data types should be allowed and so forth. The current notion that a data type is a set of values together with basic operations in that set leads us to conclude that formal parameter types need not be so explicitly stated. Given a formal parameter X with operations $o_{1},\ldots o_{n}$ being performed on X within a procedure, one should be able to supply, as actual parameter in call, a variable of any type which has operations $o_{1},\ldots o_{n}$ defined on it. We introduce a notation for this, using PASCAL as a basic language, illustrate the added flexibility it gives us, and show briefly how to implement the idea efficiently.