A-0 System
The A-0 system (Arithmetic Language version 0), written by Grace Hopper in 1951 and 1952 for the UNIVAC I, was the first compiler ever developed for an electronic computer.[1] The A-0 functioned more as a loader or linker than the modern notion of a compiler. A program was specified as a sequence of subroutines and arguments. The subroutines were identified by a numeric code and the arguments to the subroutines were written directly after each subroutine code. The A-0 system converted the specification into machine code that could be fed into the computer a second time to execute the said program.
The A-0 system was followed by the A-1, A-2, A-3 (released as ARITH-MATIC), AT-3 (released as MATH-MATIC) and B-0 (released as FLOW-MATIC).
The A-2 system was developed at the UNIVAC division of Remington Rand in 1953 and released to customers by the end of that year.[2] Customers were provided the source code for A-2 and invited to send their improvements back to UNIVAC. Thus A-2 was an early, and perhaps the first, example of free and open-source software. [3]
Details of A-0
A-0 used a library of subroutines that were stored on tape. Each subroutine had an information section describing:
- The call number of the subroutine
- The input arguments to the subroutine
- The position of the results transferred out
- The locations of control transfers out of the subroutine.
The programmer would create a program in three "phases":
- Analyze the problem and break it down into steps that can be performed by subroutines in the library
- Write out these steps as catalog numbers from the library followed by the argument and result locations
- Feed the resultant "program" into A-0 which would produce a new program on a tape.
The new program can then be run to produce results.[4]
A-0 had none of the features of modern compilers nor even the features of a modern assembler.
See also
External links
Notes
- ↑ Hopper "Keynote Address", Sammet pg. 12
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
References
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
<templatestyles src="Asbox/styles.css"></templatestyles>