Abstract

It is difficult today to think of machines of the early fifties. A vaguely recollected machine, which probably combines features of more than one real machine, had as memory a rotating drum. instruction format included an operation code and four addresses. first three addresses were not unusual: the locations of two operands and the result of the operation. fourth address was the location of the next instruction. A programmer had to pick a spot on the drum that will be under the read head when the instruction finishes. It required a bit of ingenuity and lots of experimentation to get the most out machines from that era. job was not made any easier by the fact the machines typically had about a thousand words of storage.It was not long before assemblers and compilers took over the job of managing machine operations. Programs were divided into two major sections: procedures and data. small storage capacity raised a problem: to store all numbers with the same number of bits required a choice. If the word size was small, precision was limited; if large, relatively few numbers could be stored. A compromise was reached by storing numbers in several different formats that used more storage when greater precision was required. Data-types had arrived.It was to be a several years before the term polymorphism was applied in the computer field. An early use of the word is cited in the OED: The various portraits of her majesty astonish by their perplexing polymorphism… [1839Fraser's Mag. XX. 699].Compilers in the fifties required a set of declarations that preceded the executable code. names of variables were classified into groups that specified the storage formats of their respective members. Different instruction sequences were needed to perform arithmetic on differently formatted numbers.Nonnumeric data was a category by itself. Before long nonnumeric subcategories, i. e., data-types, were recognized. Some of them formed nested sequences, just as the early numeric types --- bits, small integers, large integers, and floating point --- formed a natural sequence. domain of a function was the set of data-types on which it could operate.A typical OOPS requires declaration of the data-types and functions that apply to them in a different way. Instead of considering functions and the data-types that they can accept, it considers data-types and the sets of functions that can use them. As in the case of FORTRAN, declarations must be complete before programming begins. sets of functions could be thought of as function-types, although the term has been little used, if at all.No matter just how the information on data and function types were stored in the early computer and compiler days, and no matter whether they were stored with the CPU or on disk or drum, not many thought then about arrays of functions. Michigan Algorithm Decoder (MAD), a compiler of the late fifties, is the only place I know of which supported indexed function name variables.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call