From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Autocoder was the name given to certain assemblers for a number of IBM computers of the 1950s and 1960s. The first Autocoders appear to have been the earliest assemblers to provide a macro facility.[1]


The term autocoder needs to be distinguished from autocode, a term of the same era which was used in the UK for languages of a higher level. Both terms derive from the phrase automatic coding, which referred generally to programs which eased the burden of producing the numeric machine language codes of programs.[2] ("Autocoding" is seen occasionally, and can refer to any kind of programming system.) In some circles "autocoder" could be used in a rather generic way to refer to what is now called a macro-assembler.[3]

The first Autocoders were released in 1955 for the IBM 702 and in 1956 for the almost compatible IBM 705.[4] They were designed by Roy Goldfinger who earlier had worked on New York University's (NYU) NYAP assembler.[5][6] These machines were variable word length commercial machines, as were many of the computers for which an Autocoder was released.

Besides the 702 and 705, there eventually also were Autocoders for the IBM 1410 and 7010,[7] [8] IBM 7030 (Stretch), 7070/7072/7074,[9] [10] IBM 7080, [11] and the IBM 1400 series.[12] Other manufacturers sometimes built competing products, such as NCR's "National's Electronic Autocoder Technique" (NEAT).[13]

Autocoder as implemented on the IBM 1401[edit]

Autocoder coding sheet

The most well known Autocoder[14][15] is that of the IBM 1401, undoubtedly due in part to the general success of that series of machines. Autocoder was the primary language of this computer, and its macro capabilities supported use of the Input/Output Control System which eased the programming burden.[16] Another assembler, Symbolic Programming System (SPS), was the assembler offered when the IBM 1401 originally was announced as a punched-card-only computer. SPS had mnemonics (often different) but a different input format. It lacked Autocoder's features and was generally used only on machines that lacked tape drives (punched-card only).[17] A copy of the source programs for SPS-1, SPS-2 and Autocoder was donated to the Charles Babbage Institute, University of Minnesota, by Gary Mokotoff, author of SPS and coauthor of Autocoder.[18]

Like all 1401 programs, Autocoder was stored in character form on punched cards, magnetic disks or magnetic tape. When the cards were inserted into the card reader, pressing the Run button on the computer (a floor-standing unit; the card reader/punch was a peripheral, and there was neither keyboard or monitor) the contents of the first 80-character card were read into memory locations 0-79, and the instruction at address 0 was executed, thus beginning the bootstrap loader. Autocoder took human-intelligible symbols (such as "H" to indicate "halt")[19] and transformed them into the instructions the machine recognized. It supported conditional branching, named subroutines, counting iterations, and what IBM called its Advanced Programming Feature, an optional feature involving three separate bytes between location 80 and 90. (Since memory locations 0-79 were reserved for the card reader, 100-179 for the card punch, which punched a card with the data in these locations when the "punch" command was issued, and 200-279 for the (single) printer, locations 80-99 were orphans and available for other purposes that only needed a few bytes.)

At that time the primary storage media was half-inch magnetic tape read and written on drives the size of refrigerators. There were no named files, a concept still in the future. Autocoder did implement a new feature: the byte mark, a single character which served to delimit a block of memory of any size, or a tape file.

The 1401 was available in six memory configurations, with 1400, 2000, 4000, 8000, 12000, or 16000 six-bit characters. The 8000-character model was the minimum needed to run Autocoder; a character file (on punched cards or magnetic tape) could be produced on an 8000-character model which could then be run on a 4000-character machine.


  1. ^ Solomon 1993, p. 8.
  2. ^ Hopper 1955.
  3. ^ For an example see Allen 1981, p. 540.
  4. ^ 705 autocoder system - manual of information (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, February 1957, 22-6726-1
  5. ^ Goldfinger 1956.
  6. ^ The Encyclopedia of Computer Languages Archived September 16, 2007, at the Wayback Machine
  7. ^ IBM 1410 Autocoder (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, February 1964, C28-0309-1
  8. ^ IBM 1410/700 Operating System (1410-PR-155) - Autocoder - 1410-AU-968 (PDF), IBM Systems Reference Library (Third ed.), IBM Corporation, November 1964, C28-0336-2
  9. ^ Reference Manual - IBM 7070/7074 Four-Tape Autocoder (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, April 1961, C28-6102-1
  10. ^ Reference Manual - IBM 7070 Series Programming Systems - Autocoder (PDF), IBM Systems Reference Library (First ed.), IBM Corporation, 1961, C28-6121-0
  11. ^ Reference Manual - IBM 7080 Programming Systems - 7080 Processor: Autocoder Language (PDF), IBM Systems Reference Library (First ed.), IBM Corporation, 1962, C28-6263
  12. ^ 7010: Weik 1964, p. 0160; 7030:[1],[2]; 7070: [3],[4]; 7080: [5]; 1400 series: [6], "Archived copy" (PDF). Archived from the original (PDF) on 2006-10-19. Retrieved 2006-07-30.CS1 maint: Archived copy as title (link).
  13. ^ Weik 1964, p. 0202.
  14. ^ Autocoder (on Tape) Language Specifications and Operating Procedures IBM 1401 and 1460 Program 1401-AU-037 (PDF), IBM Systems Reference Library (First ed.), IBM Corporation, November 1964, C24-3319-0
  15. ^ Autocoder (on Disk) Language Specifications IBM 1401, 1440, and 1460 (PDF), IBM Systems Reference Library (Third ed.), IBM Corporation, April 1966, C24-3258-2
  16. ^ [7]; Solomon 1993, p. 8; "Archived copy". Archived from the original on 2007-09-17. Retrieved 2007-03-18.CS1 maint: Archived copy as title (link).
  17. ^ [8], [9].
  18. ^ Gary Mokotoff Collection of IBM 1401 Program Listings, 1959-1961
  19. ^ System Operation Reference Manual - IBM 1401 Data Processing System - IBM 1460 Data Processing System (PDF), IBM Systems Reference Library (Third ed.), IBM Corporation, September 1966, p. B-19, A24-3067-2


  • Allen, F. E., "The history of language processor technology at IBM", IBM Journal of Research and Development, 25(5), pp. 535-548 (September 1981). [10]
  • Goldfinger, Roy, "The IBM Type 705 Autocoder". Proceedings East Joint Computer Conf., San Francisco, 1956.
  • Hopper, Grace, "Automatic Coding for Digital Computers" in the High Speed Computer Conference, Louisiana Stat (1955) the High Speed Computer Conference, Louisiana State University, 16 Feb. 1955, Remington Rand, Inc., 1955. [11]
  • Salomon, David, Assemblers And Loaders (Horwood, 1993), ISBN 0-13-052564-2. [12]
  • Weik, Martin H., A Fourth Survey of Domestic Electronic Digital Computing Systems,BRL Report No. 1227, January 1964 (Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland). [13]

External links[edit]