Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Atlas Autocode

From Wikipedia, the free encyclopedia
1960s computer programming language
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Atlas Autocode" – news ·newspapers ·books ·scholar ·JSTOR
(September 2009) (Learn how and when to remove this message)
Atlas Autocode
ParadigmsProcedural,imperative,structured
FamilyALGOL
Designed byTony Brooker, Derrick Morris
DeveloperUniversity of Manchester
First appeared1963; 62 years ago (1963)
Typing disciplineStatic,strong
ScopeLexical
Implementation languageALGOL 60
PlatformAtlas
English Electric KDF9
OSSupervisor
Majorimplementations
Edinburgh IMP
Influenced by
ALGOL 60

Atlas Autocode (AA)[1][2] is aprogramming language developed around 1963 at theUniversity of Manchester. A variant of the languageALGOL, it was developed byTony Brooker and Derrick Morris for theAtlas computer. The initial AA and AB compilers were written by Jeff Rohl and Tony Brooker using the Brooker-MorrisCompiler-compiler, with a later hand-coded non-CC implementation (ABC) by Jeff Rohl.[3]

The wordAutocode was basically an early term forprogramming language. Different autocodes could vary greatly.

Features

[edit]

AA was ablock structured language that featured explicitly typedvariables,subroutines, and functions. It omitted some ALGOL features such aspassing parameters by name, which inALGOL 60 means passing thememory address of a short subroutine (athunk) to recalculate a parameter each time it is mentioned.

The AAcompiler could generate range-checking forarray accesses, and allowed an array to have dimensions that were determined atruntime, i.e., an array could be declared asintegerarray Thing (i:j), wherei andj were calculated values.

AA high-level routines could includemachine code, either to make aninner loop more efficient or to effect some operation which otherwise cannot be done easily.[1]

AA included acomplex data type[1] to representcomplex numbers, partly because of pressure from theelectrical engineering department, as complex numbers are used to represent the behavior ofalternating current. Theimaginary unit square root of -1 was represented byi, which was treated as a fixed complex constant =i.

Thecomplex data type was dropped when Atlas Autocode later evolved into the languageEdinburgh IMP. IMP was an extension of AA and was used to write theEdinburgh Multiple Access System (EMAS)operating system.

In addition to being notable as the progenitor of IMP and EMAS, AA is noted for having had many of the features of the originalCompiler Compiler. A variant of the AA compiler included run-time support for a top-downrecursive descent parser. The style ofparser used in the Compiler Compiler was in use continuously at Edinburgh from the 60's until almost the year 2000.

OtherAutocodes were developed for theTitan computer, a prototype Atlas 2 at Cambridge, and theFerranti Mercury.

Syntax

[edit]

Atlas Autocode'ssyntax was largely similar to ALGOL, though it was influenced by the output device which the author had available, aFriden Flexowriter. Thus, it allowed symbols like½ for.5 and the superscript2 forto the power of 2. The Flexowriter supported overstriking and thus, AA did also: 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 aforementioned underlining ofreserved words (keywords) could also be done using overstriking. The language is described in detail in the Atlas Autocode Reference Manual.[1]

Other Flexowriter characters that were found a use in AA were:α in floating-point numbers,e.g.,3.56α-7 for modern3.56e-7 ;β to meanthe second half of a48-bit Atlas memoryword;π for the mathematical constantpi.

When AA was ported to theEnglish Electric KDF9 computer, the character set was changed toInternational Organization for Standardization (ISO). That compiler has been recovered from an old paper tape by the Edinburgh Computer History Project and is available online, as is a high-quality scan of the original Edinburgh version of the Atlas Autocode manual.[2]

Keywords in AA were distinguishable from other text by being underlined, which was implemented via overstrike in the Flexowriter (compare to bold in ALGOL). There were also twostropping regimes. First, there was an "uppercasedelimiters" mode where all uppercase letters (outside strings) were treated as underlined lowercase. Second, in some versions (but not in the original Atlas version), it was possible to strop keywords by placing a "%" sign in front of them, for example the keywordendofprogramme could be typed as%end %of %programme or%endofprogramme. This significantly reduced typing, due to only needing one character, rather than overstriking the whole keyword. As in ALGOL, there were noreserved words in the language as keywords were identified by underlining (or stropping), not by recognising reserved character sequences. In the statementif token=ifthenresult = token, there is both a keywordif and a variable namedif.

As in ALGOL, AA allowed spaces in variable names, such asinteger previous value. Spaces were not significant and were removed before parsing in a trivial pre-lexing stage called "line reconstruction". What the compiler would see in the above example would be "iftoken=ifthenresult=token". Spaces were possible due partly to keywords being distinguished in other ways, and partly because the source was processed byscannerless parsing, without a separate lexing phase, which allowed the lexical syntax to be context-sensitive.

The syntax for expressions let the multiplication operator be omitted, e.g.,3a was treated as3*a, anda(i+j) was treated asa*(i+j) ifa was not an array. In ambiguous uses, the longest possible name was taken (maximal munch), for exampleab was not treated asa*b, whether or nota andb had been declared.

References

[edit]
  1. ^abcdBrooker, R.A.; Rohl, J.S. (1965)."Atlas Autocode Reference Manual"(PDF). University of Manchester Computer Science Department. (Original scansArchived 2019-01-16 at theWayback Machine)
  2. ^abSchofoeld, P.D.; Osbourne, M.R. (1965)."Programming in Atlas Autocode, Computer Unit Report No. 1"(PDF). University of Edinburgh. Archived fromthe original(PDF) on 2020-05-15. Retrieved2006-04-12. (Original scansArchived 2011-07-21 at theWayback Machine)
  3. ^"Tony Brooker and the Atlas Compiler Compiler"(PDF). February 2014. Retrieved2024-02-16.

External links

[edit]
Implementations
Technical
standards
Dialects
Formalisms
Community
Organizations
Professional
associations
Business
Education
Government
People
ALGOL 58
MAD
ALGOL 60
Simula
ALGOL 68
Comparison
Retrieved from "https://en.wikipedia.org/w/index.php?title=Atlas_Autocode&oldid=1258571139"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp