Autocoder

Last updated

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. [1]

Contents

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. [2] "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. [3]

History

The first Autocoders were released in 1955 for the IBM 702, [4] and in 1956 for the almost compatible IBM 705. [5] They were designed by Roy Goldfinger who earlier had worked on New York University's (NYU) NYAP assembler. [6] [7] 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, [8] [9] IBM 7030 (Stretch), 7070/7072/7074, [10] [11] IBM 7080, [12] and the IBM 1400 series. [13]

Autocoder as implemented on the IBM 1401

Symbolic Programming System [14] (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. [15] [16]

Autocoder coding sheet IBM 1401 AUTOCODER programm select and print.jpg
Autocoder coding sheet

1401 Autocoder [17] [18] 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. [19] [20] [21] 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.

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). [22]

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.[ citation needed ]

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. [16] [23]

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. [24]

Notes

  1. Solomon 1993, p. 8.
  2. Hopper 1955.
  3. For an example see Allen 1981, p. 540.
  4. Catalog of Copyright Entries. Third Series: 1956. Copyright Office, Library of Congress. 1957. p. 305. Retrieved 2019-08-23.
  5. 705 autocoder system - manual of information (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, February 1957, 22-6726-1
  6. Goldfinger 1956.
  7. The Encyclopedia of Computer Languages Archived September 16, 2007, at the Wayback Machine
  8. IBM 1410 Autocoder (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, February 1964, C28-0309-1
  9. 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
  10. Reference Manual - IBM 7070/7074 Four-Tape Autocoder (PDF), IBM Systems Reference Library (Second ed.), IBM Corporation, April 1961, C28-6102-1
  11. Reference Manual - IBM 7070 Series Programming Systems - Autocoder (PDF), IBM Systems Reference Library (First ed.), IBM Corporation, 1961, C28-6121-0
  12. Reference Manual - IBM 7080 Programming Systems - 7080 Processor: Autocoder Language (PDF), IBM Systems Reference Library (First ed.), IBM Corporation, 1962, C28-6263
  13. 7010: Weik 1964, p. 0160; 7030: "IBM Stretch (aka IBM 7030 Data Processing System)" , "Compilers and Computers: Partners in Performance" (PDF); 7070: Tom Van Vleck, "The IBM 7070", A Third Survey of Domestic Electronic Digital Computing Systems, Martin H. Weik, "IBM 7070", Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland; 7080: ; 1400 series: , 1410 Autocoder (PDF).
  14. IBM 1401 SYMBOLIC PROGRAMMING SYSTEM: PRELIMINARY SPECIFICATIONS (PDF), IBM, 1960, J28-200-1
  15. Thelen, Ed. "IBM-1401" . Retrieved 2020-03-05.
  16. 1 2 Van Vleck, Tom. "1401s I have known". multicians.org. Retrieved 2020-03-05.
  17. 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
  18. Autocoder (on Disk) Language Specifications IBM 1401, 1440, and 1460 (PDF), IBM Systems Reference Library (Third ed.), IBM Corporation, April 1966, C24-3258-2
  19. IBM Corporation. Executive Guide to the IBM 1440 Data Processing System (PDF). Retrieved 2020-03-08.
  20. Solomon 1993, p. 8
  21. "The Encyclopedia of Computer Languages". Archived from the original on 2007-09-17. Retrieved 2007-03-18..
  22. Weik 1964, p. 0202.
  23. IBM Corporation (1962). Catalog of Programs for IBM Data Processing Systems KWIC Index (PDF). p. 248. Retrieved 2020-03-05.
  24. Gary Mokotoff Collection of IBM 1401 Program Listings, 1959-1961

Related Research Articles

<span class="mw-page-title-main">Assembly language</span> Low-level programming language

In computer programming, assembly language, often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Assembly language usually has one statement per machine instruction (1:1), but constants, comments, assembler directives, symbolic labels of, e.g., memory locations, registers, and macros are generally also supported.

IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM's line of business computers are developments of the basic design of the System/360.

<span class="mw-page-title-main">IBM 1401</span> 1960s decimal computer

The IBM 1401 is a variable-wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on punched cards and at providing peripheral services for larger computers. The 1401 is considered by IBM to be the Ford Model-T of the computer industry due to its mass appeal. Over 12,000 units were produced and many were leased or resold after they were replaced with newer technology. The 1401 was withdrawn on February 8, 1971.

<span class="mw-page-title-main">IBM 650</span> Vacuum-tube 1950s computer system

The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer produced by IBM in the mid-1950s. It was the first mass-produced computer in the world. Almost 2,000 systems were produced, the last in 1962, and it was the first computer to make a meaningful profit. The first one was installed in late 1954 and it was the most popular computer of the 1950s.

<span class="mw-page-title-main">IBM 7030 Stretch</span> First IBM supercomputer using dedicated transistors

The IBM 7030, also known as Stretch, was IBM's first transistorized supercomputer. It was the fastest computer in the world from 1961 until the first CDC 6600 became operational in 1964.

<span class="mw-page-title-main">IBM 700/7000 series</span> Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

<span class="mw-page-title-main">Index register</span> CPU register used for modifying operand addresses

An index register in a computer's CPU is a processor register used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for holding loop iterations and counters. In some architectures it is used for read/writing blocks of memory. Depending on the architecture it may be a dedicated index register or a general-purpose register. Some instruction sets allow more than one index register to be used; in that case additional instruction fields may specify which index registers to use.

RPG is a high-level programming language for business applications, introduced in 1959 for the IBM 1401. It is most well known as the primary programming language of IBM's midrange computer product line, including the IBM i operating system. RPG has traditionally featured a number of distinctive concepts, such as the program cycle, and the column-oriented syntax. The most recent version is RPG IV, which includes a number of modernization features, including free-form syntax.

<span class="mw-page-title-main">IBM 1410</span> Variable wordlength decimal computer announced by IBM in 1960

The IBM 1410, a member of the IBM 1400 series, was a decimal computer with a variable word length that was announced by IBM on September 12, 1960 and marketed as a midrange business computer. It was withdrawn on March 30, 1970.

<span class="mw-page-title-main">IBM 1400 series</span> Mid-range business decimal computers

The IBM 1400 series are second-generation (transistor) mid-range business decimal computers that IBM marketed in the early 1960s. The computers were offered to replace tabulating machines like the IBM 407. The 1400-series machines stored information in magnetic cores as variable-length character strings separated on the left by a special bit, called a "wordmark," and on the right by a "record mark." Arithmetic was performed digit-by-digit. Input and output support included punched card, magnetic tape, and high-speed line printers. Disk storage was also available.

<span class="mw-page-title-main">PDP-4</span> 1962 computer made by Digital Electronics Corp

The PDP-4 was the successor to the Digital Equipment Corporation's PDP-1.

<span class="mw-page-title-main">Standard Modular System</span> IBM computer circuit board, circa 1960

The Standard Modular System (SMS) is a system of standard transistorized circuit boards and mounting racks developed by IBM in the late 1950s, originally for the IBM 7030 Stretch. They were used throughout IBM's second-generation computers, peripherals, the 7000 series, the 1400 series, and the 1620. SMS was superseded by Solid Logic Technology (SLT) introduced with System/360 in 1964, however they remained in use with legacy systems through the 1970s.

<span class="mw-page-title-main">IBM 7070</span> Decimal computer introduced by IBM in 1958

IBM 7070 is a decimal-architecture intermediate data-processing system that was introduced by IBM in 1958. It was part of the IBM 700/7000 series, and was based on discrete transistors rather than the vacuum tubes of the 1950s. It was the company's first transistorized stored-program computer.

FARGO was the predecessor to the RPG programming language. FARGO was more of a utility program than a programming language, whereas RPG had a program generation process that produced an executable object.

<span class="mw-page-title-main">IBM 7080</span> Transistor computer, commercial architecture, 1961

The IBM 7080 was a variable word length BCD transistor computer in the IBM 700/7000 series commercial architecture line, introduced in August 1961, that provided an upgrade path from the vacuum-tube IBM 705 computer.

The IBM 1401 Symbolic Programming System (SPS) was an assembler that was developed by Gary Mokotoff, IBM Applied Programming Department, for the IBM 1401 computer, the first of the IBM 1400 series. One source indicates that "This programming system was announced by IBM with the machine."

Input/Output Control System (IOCS) is any of several packages on early IBM entry-level and mainframe computers that provided low level access to records on peripheral equipment. IOCS provides functionality similar to 1960s packages from other vendors, e.g., File Control Processor (FCP) in RCA 3301 Realcom Operating System, GEFRC in GECOS, and to the later Record Management Services (RMS) in DEC VAX/VMS

<span class="mw-page-title-main">IBM System/370 Model 165</span> Type of mainframe computer

The IBM System/370 Model 165 were jointly announced June 30, 1970 as "designed for ... the Seventies." That same day IBM announced the 370/195. They were the first three models of the IBM System/370 line of computers.

References