Autocoder
Computer assembler
title: "Autocoder" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["assembly-languages", "ibm-software", "ibm-700/7000-series", "ibm-1400-series"] description: "Computer assembler" topic_path: "technology/programming-languages" source: "https://en.wikipedia.org/wiki/Autocoder" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Computer assembler ::
::callout[type=note] the IBM Autocoder assemblers ::
Autocoder is any of a group of 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.
Terminology
Both autocoder, and the unrelated autocode, a term of the same era used in the UK for languages of a higher level, derive from the phrase automatic coding. This referred generally to programs which eased the burden of producing the numeric machine language codes of programs. "Autocoding" is seen occasionally, and can refer to any kind of programming system. In some circles "autocoder" could be used generically to refer to what is now called a macro-assembler.
History
The first Autocoders were released in 1955 for the IBM 702, and in 1956 for the almost compatible IBM 705.{{cite manual | title = 705 autocoder system - manual of information | series = IBM Systems Reference Library | id = 22-6726-1 | edition = Second | date = February 1957 | publisher= IBM Corporation | url = http://bitsavers.org/pdf/ibm/705/22-6726-1_autocoder_Feb57.pdf | mode = cs2 They were designed by Roy Goldfinger who earlier had worked on New York University's (NYU) NYAP assembler. 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,{{cite manual | title = IBM 1410 Autocoder | series = Systems Reference Library | id = C28-0309-1 | edition = Second | date = February 1964 | publisher = IBM Corporation | url = http://bitsavers.org/pdf/ibm/1410/C28-0309-1_1410_autocoder.pdf | access-date = September 18, 2022 | mode = cs2 | title = IBM 1410/7010 Operating System (1410-PR-155) - Autocoder 1410-AU-968 | series = Systems Reference Library | id = C28-0326-2 | date = November 1964 | edition = Third | publisher = IBM Corporation | url = http://bitsavers.org/pdf/ibm/1410/C28-0326-2_1410_OS_Autocoder.pdf | access-date = September 18, 2022 | mode = cs2 IBM 7030 (Stretch), 7070/7072/7074,{{cite manual | title = Reference Manual - IBM 7070/7074 Four-Tape Autocoder | series = Systems Reference Library | id = C28-6102-1 | edition = Second | date = April 1961 | publisher = IBM Corporation | url = http://bitsavers.org/pdf/ibm/7070/C28-6102-1_7070_Four_Tape_Autocoder_Apr61.pdf | access-date = September 18, 2022 | mode = cs2 | title = Reference Manual - IBM 7070 Series Programming Systems - Autocoder | series = IBM Systems Reference Library | id = C28-6121-0 | edition = First | year = 1961 | publisher = IBM Corporation | url = http://bitsavers.org/pdf/ibm/7070/C28-6121-0_7070autocoder_61.pdf | access-date = September 18, 2022 | mode = cs2 IBM 7080, | title = Reference Manual - IBM 7080 Programming Systems - 7080 Processor: Autocoder Language | series = IBM Systems Reference Library | id = C28-6263 | edition = First | year = 1962 | publisher= IBM Corporation | url = http://bitsavers.org/pdf/ibm/7070/C28-6121-0_7070autocoder_61.pdf | mode = cs2 and the IBM 1400 series.7010: Weik 1964, p. 0160; 7030:{{cite web | title = IBM Stretch (aka IBM 7030 Data Processing System) | url = http://www.brouhaha.com/~eric/retrocomputing/ibm/stretch/ | mode = cs2 | title = Compilers and Computers: Partners in Performance | url = http://www.cgo.org/cgo2003/keynote/FranAllenCGO.pdf | mode = cs2 | title = The IBM 7070 | author = Tom Van Vleck | website = A Third Survey of Domestic Electronic Digital Computing Systems | url = http://www.multicians.org/thvv/7070.html | mode = cs2 | title = IBM 7070 | author = Martin H. Weik | publisher = Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland | url = http://ed-thelen.org/comp-hist/BRL61-ibm7070.html | mode = cs2 | title = 1410 Autocoder | url = http://bitsavers.org/pdf/ibm/1410/C28-0309-1_1410_autocoder.pdf | mode = cs2
Autocoder as implemented on the IBM 1401
Symbolic Programming System{{cite manual | title = IBM 1401 SYMBOLIC PROGRAMMING SYSTEM: PRELIMINARY SPECIFICATIONS | id = J28-200-1 | year = 1960 | publisher = IBM | url = http://bitsavers.org/pdf/ibm/1401/J28-200-1_IBM_1401_Symbolic_Programming_System_Preliminary_Specifications_Jan60.pdf | mode = cs2 (SPS), was the assembler offered when IBM originally announced 1401 as a punched-card-only computer. SPS had different mnemonics and a different fixed input format from Autocoder. It lacked Autocoder's features and was generally used later only on machines that lacked tape drives, that is, punched-card only.
::figure[src="https://upload.wikimedia.org/wikipedia/commons/2/2f/IBM_1401_AUTOCODER_programm_select_and_print.jpg" caption="Autocoder coding sheet"] ::
1401 Autocoder{{cite manual | title = Autocoder (on Tape) Language Specifications and Operating Procedures IBM 1401 and 1460 Program 1401-AU-037 | series = IBM Systems Reference Library | id = C24-3319-0 | edition = First | date = November 1964 | publisher= IBM Corporation | url = http://bitsavers.org/pdf/ibm/1401/C24-3319-0_Autocoder_on_Tape_Laguage_Specifications_and_Operating_Procedures_Nov64.pdf | mode = cs2 | title = Autocoder (on Disk) Language Specifications IBM 1401, 1440, and 1460 | series = IBM Systems Reference Library | id = C24-3258-2 | edition = Third | date = April 1966 | publisher= IBM Corporation | url = http://bitsavers.org/pdf/ibm/1401/C24-3258-2_Disk_Autocoder_Specifications_Apr66.pdf | mode = cs2 is the most well known Autocoder, 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 facilitated use of the Input/Output Control System which eased the programming burden. Autocoder also had the ability to process code written for SPS.
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 the full Autocoder assembler application, including IOCS. However a language subset assembler was available for use with as little as 1400 memory positions. A loadable object 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. The limited language subset only processed punched cards and required 4 passes with intermediate punched card outputs. 1401 Autocoder ran on other members of the 1400 series, but there were separate Autocoder versions for the 1410 and 7010, one standalone and one under OS control.
Autocoder as implemented on the IBM 7070
IBM provided three versions of Autocoder for the IBM 7070, also available for the later 7072 and 7074. Four-Tape Autocoder extends Basic Autocoder, adds a simple macro language, adds IOCS and requires 4 tape drives, while Autocoder requires 6 tape drives and has a more capable macro generator facility.
Influence
The popularity of Autocoder inspired other assemblers. ‘’Easycoder’’ for the Honeywell 200, a computer similar to the 1401, resembled Autocoder. Other manufacturers sometimes built competing products, such as NCR's "National's Electronic Autocoder Technique" (NEAT).
The Pennsylvania State University developed a "Dual Autocoder Fortran Translator" (DAFT) compiler for the IBM 7074 in the 1960s which made it extremely easy to write (within a single program) lines of autocoder instructions freely interspersed with lines of Fortran code. This allowed symbolic machine instruction level coding within a higher level Fortran program, which was especially useful for optimizing the speed of inner loops, or for making use of the IBM 7074's unusual decimal word architecture.
Bell Laboratories developed a program called "Peripheral Equipment Symbolic Translator" (PEST), which was a 1401 cross-assembler that ran on the 709/709x and accepted a subset of 1401 Autocoder.
A copy of the source programs for SPS-1, SPS-2 and Autocoder was donated to the Charles Babbage Institute, University of Minnesota in 1985, by Gary Mokotoff, author of SPS and coauthor of Autocoder.
Notes
Citations
References
- Allen, F. E., "The history of language processor technology at IBM", IBM Journal of Research and Development, 25(5), pp. 535–548 (September 1981). http://www.research.ibm.com/journal/rd/255/ibmrd2505Q.pdf
- 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 State (1955) the High Speed Computer Conference, Louisiana State University, 16 Feb. 1955, Remington Rand, Inc., 1955. http://www.bitsavers.org/pdf/univac/HopperAutoCodingPaper_1955.pdf
- http://www.davidsalomon.name/assem.advertis/AssemAd.htmlhttps://www.scribd.com/doc/7326575/Assembly-Language (xiv+294+4 pages)
- 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). http://ed-thelen.org/comp-hist/BRL64-i.html
References
- Solomon 1993, p. 8.
- Hopper 1955.
- For an example see Allen 1981, p. 540.
- (1957). "Catalog of Copyright Entries. Third Series: 1956". Copyright Office, Library of Congress.
- Goldfinger 1956.
- link. (September 16, 2007)
- "IBM-1401".
- "1401s I have known".
- "Executive Guide to the IBM 1440 Data Processing System".
- Solomon 1993, p. 8
- "The Encyclopedia of Computer Languages".
- Weik 1964, p. 0202.
- (1962). "Catalog of Programs for IBM Data Processing Systems KWIC Index".
- "Gary Mokotoff Collection of IBM 1401 Program Listings, 1959-1961".
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::