The A-0 system (Arithmetic Language version 0) was an early[1] compiler related tool developed for electronic computers, written by Grace Murray Hopper[2] in 1951 and 1952 originally for the UNIVAC I.[3] The A-0 functioned more as a loader or linker than the modern notion of a compiler.[4] [5] [6] A program was specified as a sequence of subroutines and its 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,[7] 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.[8] Customers were provided the source code for A-2 and invited to send their improvements back to UNIVAC. Thus, A-2 could be considered an example of the result of an early philosophy similar to free and open-source software.[9]