- Atlas Autocode
Atlas Autocode (AA) was a
programming languagedeveloped around 1965 at Manchester Universityfor the Atlas Computer. It was developed by Tony Brooker and Derrick Morris as an improvement on the ALGOL programming languages, removing some of Algol's poorer features such as "passing parameters by name" (which with Algol 60 meant not its usual meaning but passing the address of a short subroutine to recalculate the parametere each time it was mentioned). It featured explicitly typed variables, subroutines, and functions. The AA compiler generated range-checking for array accesses, and allowed an array to have dimensions that were determined at run-time (i.e. you could declare an array as
integer array Thing (i:j), where
jwere calculated values). Direct machine coding was allowed.
Atlas Autocode included a
complexdata type which would support
complex numbers (for example, the square root of -1). A complex number was represented as an expression involving
i, which was treated as a fixed complex constant = "i". This was partly because of pressure from the
electrical engineeringdepartment, which used complex numbers much to represent the behavior of alternating current.
This 'complex' feature was dropped when Atlas Autocode later morphed into the
Edinburgh IMPprogramming language. (Imp was an extension of AA and was notable for being used to write the EMAS operating system.)
Keywords in AA were represented as being underlined. There was a mode "uppercasedelimiters", where all uppercase letters (outside strings) were treated as underlined lowercase.
In some versions (but not in the original Atlas version), for the sake of easy typing it was possible to strop keywords by placing a "
%" sign in front of them, for example the keyword
endofprogrammecould be typed as
%end %of %programmeor
There were no reserved words in the language. In the statement
if token=if then result = token, there is both a keyword
ifand a variable named
Because of this keyword stropping, it was possible for AA to allow spaces in variable names, such as
integer previous value. Spaces were not significant and were removed prior to parsing in a trivial pre-lexing stage called "line reconstruction". What the compiler would see in the above example would be "
The syntax for expressions let the multiplication operator be omitted, e.g.
3awas treated as
a(i+j)was treated as
awas not an array. In ambiguous usages, the longest possible name was taken, for example
abwas not treated as
a*b, whether or not
bhad been declared.
Atlas Autocode's syntax was influenced by the output device which the author had available, a Friden
Flexowriter. Consequently it allowed symbols like "½" for ".5" and the superscript 2 for "to the power of 2". The flexowriter supported overstriking and therefore AA did as well - up to three characters could be overstruck as a single symbol. For example the character set had no "↑" symbol, so exponentiation was an overstrike of "|" and "*". (The underlining of keywords mentioned above could also be done using overstriking.) The language is described in detail in the [http://history.dcs.ed.ac.uk/archive/docs/atlasautocode.html Atlas Autocode Reference Manual] .
Other Flexowriter characters that were found a use in Atlas Autocode were:
αin floating-point numbers, e.g.
βto mean "the second half of an Atlas memory word";
πfor the mathematical
When AA was ported to the
English Electric KDF9computer, the character set was changed to ISOand that compiler has been recovered from an old paper tape by the [http://history.dcs.ed.ac.uk/ Edinburgh Computer History Project] and is available online, as is a high-quality scan of the original Atlas Autocode manual.
Atlas Autocode's second-greatest claim to fame (after being the progenitor of Imp and EMAS) was that it had many of the features of the original "Compiler Compiler". A variant of the AA compiler included run-time support for a top-down
recursive descent parser. The style of parser used in the Compiler Compiler was in use continuously at Edinburgh from the 60's until almost the turn of the millennium.
Autocodes were developed for the Titan (computer)(a prototype Atlas 2) at Cambridge and the FerrantiMercury.
* [http://history.dcs.ed.ac.uk/archive/bfoley/atlasautocode.html Atlas Autocode Reference Manual]
* [http://history.dcs.ed.ac.uk/archive/docs/CU-Rep-1-AA.pdf Programming In Atlas Autocode] - Edinburgh University Computer Unit Report #1 (1965) (PDF 1.2 format - you may need to right-click and save first, depending on your browser and version of Adobe reader)
Wikimedia Foundation. 2010.
Look at other dictionaries:
Autocode — is the name of a family of simplified coding systems , later called programming languages, devised in the 1950s and 1960s for a series of digital computers at the Universities of Manchester and Cambridge. Autocode was a generic term; the… … Wikipedia
Atlas (computer) — The Atlas Computer was a joint development between the University of Manchester, Ferranti, and Plessey. The first Atlas, installed at Manchester University and officially commissioned in 1962, was one of the world s first supercomputers,… … Wikipedia
Atlas Computer (Manchester) — The Atlas Computer of the University of Manchester, England, became operational in 1962, as a joint development between the University, Ferranti and Plessey. It was arguably one of the world s first supercomputers, and the fastest computer in the … Wikipedia
Atlas (disambiguation) — Most things with a name that includes the term Atlas stem directly or indirectly from the mythological character AtlasAtlas may also refer to: Greek mythology * Atlas (mythology), a Titan who bore the spheres of the heavens; inspiring the widely… … Wikipedia
autocode — ● n. m. ►LANG * Sorte de langage assembleur rudimentaire, la différence entre celui ci et l autocode étant que ce dernier ne dispose même pas des quelques instructions complexes de l autre, comme les macros. * À l origine, ce fut un langage ou… … Dictionnaire d'informatique francophone
Computadora Atlas (Manchester) — Este artículo o sección sobre informática necesita ser wikificado con un formato acorde a las convenciones de estilo. Por favor, edítalo para que las cumpla. Mientras tanto, no elimines este aviso puesto el 16 de julio de 2009. También puedes… … Wikipedia Español
ALGOL — This article is about the programming language family. For other uses, see Algol (disambiguation). ALGOL Paradigm(s) procedural, imperative, structured Appeared in 1958 Designed by Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis … Wikipedia
English Electric KDF9 — KDF9 was an early British computer designed and built by English Electric, later English Electric Leo Marconi, EELM, later still incorporated into ICL. It first came into service in 1964 and was still in use in 1980 in at least one installation.… … Wikipedia
Edinburgh IMP — is a development of ATLAS Autocode, initially developed around 1966 1969 at Edinburgh University, Scotland. IMP was a general purpose programming language which was used heavily for systems programming.Expressively, IMP is extremely similar to… … Wikipedia
Laning and Zierler system — The Laning and Zierler system was one of the first operating algebraic compilers, that is, a system capable of accepting mathematical formulae in algebraic notation and producing equivalent machine code. It was implemented in 1954 for the MIT… … Wikipedia