skip to main content
10.1145/312627.312705acmconferencesArticle/Chapter ViewAbstractPublication PagesaplConference Proceedingsconference-collections
Article
Free Access

Functions and data can dance as equal partners

Published:01 December 1998Publication History

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. The instruction format included an operation code and four addresses. The first three addresses were not unusual: the locations of two operands and the result of the operation. The 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. The 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. The 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…" [1839 Fraser's Mag. XX. 699].Compilers in the fifties required a set of declarations that preceded the executable code. The 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. The 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. The 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. The Michigan Algorithm Decoder (MAD), a compiler of the late fifties, is the only place I know of which supported indexed function name variables.

Index Terms

  1. Functions and data can dance as equal partners

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      APL '99: Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
      August 1999
      108 pages
      ISBN:1581131267
      DOI:10.1145/312627

      Copyright © 1998 Author

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 December 1998

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article
    • Article Metrics

      • Downloads (Last 12 months)28
      • Downloads (Last 6 weeks)8

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader