Atlas Autocode - Atlas Autocode
![]() | tento článek potřebuje další citace pro ověření.Září 2009) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Paradigmata | Procesní, rozkazovací způsob, strukturovaný |
---|---|
Rodina | ALGOL |
Navrhl | Tony Brooker, Derrick Morris |
Vývojář | University of Manchester |
Poprvé se objevil | 1965 |
Psací disciplína | Statický, silný |
Rozsah | Lexikální |
Jazyk implementace | ALGOL 60 |
Plošina | Atlas Angličtina Electric KDF9 |
OS | Dozorce |
Hlavní, důležitý implementace | |
Edinburgh IMP | |
Ovlivněno | |
ALGOL 60 |
Atlas Autocode (AA)[1][2] je programovací jazyk vyvinut kolem roku 1965 na University of Manchester. Varianta jazyka ALGOL, to bylo vyvinuto Tony Brooker a Derrick Morris pro Atlas počítač.
Slovo Automatický kód byl v podstatě raný termín pro programovací jazyk. Různé autokódy se mohou velmi lišit.
Funkce
AA uváděl výslovně napsané proměnné, podprogramy a funkce. Vynechal některé funkce ALGOL, jako je předávání parametrů podle názvu, v kterém ALGOL 60 znamená předat adresa paměti krátkého podprogramu k přepočtu parametru pokaždé, když je zmíněn.
AA překladač vygenerována kontrola rozsahu pro pole přistupuje a povoluje, aby pole mělo rozměry, které byly určeny na runtime, tj. pole lze deklarovat jako celé číslo pole Věc (i: j)
, kde i
a j
byly vypočtené hodnoty.
Rutiny na vysoké úrovni AA mohou zahrnovat strojový kód, buď udělat vnitřní smyčka efektivnější nebo provést nějakou operaci, kterou by jinak nebylo možné snadno provést.[1]
AA zahrnuje a komplex
datový typ[1] reprezentovat komplexní čísla, částečně kvůli tlaku ze strany elektrotechnika oddělení, protože komplexní čísla se používají k vyjádření chování střídavý proud. The imaginární jednotka druhá odmocnina -1 byla reprezentována i
, který byl považován za pevnou komplexní konstantu = i.
The komplex
datový typ byl zrušen, když se Atlas Autocode později vyvinul do jazyka Edinburgh IMP. IMP byla příponou AA a byla použita k napsání Edinburgh Multiple Access System (EMAS) operační systém.
Druhým největším tvrzením AA o slávě (poté, co byl předkem IMP a EMAS) bylo, že má mnoho vlastností originálu Kompilátor Kompilátor. Varianta kompilátoru AA zahrnovala podporu běhu shora dolů analyzátor rekurzivního sestupu. Styl analyzátor použitý v kompilátoru Kompilátor byl používán v Edinburghu nepřetržitě od 60. let téměř do roku 2000.
jiný Autokódy byly vyvinuty pro Počítač Titan, prototyp Atlas 2 v Cambridge a Ferranti Rtuť.
Syntax
Atlas Autocode syntax byl do značné míry podobný ALGOLu, ačkoli byl ovlivněn výstupním zařízením, které měl autor k dispozici, a Friden Flexowriter. To tedy umožnilo symboly jako ½
pro .5 a horní index 2 pro k síle 2. Flexowriter podporoval přehnané stávky, a tak AA také udělala: až tři znaky mohly být přehnané jako jeden symbol. Například znaková sada neměla číslo ↑
symbol, takže umocňování bylo přehnané |
a *
. Výše uvedené podtržení vyhrazená slova (klíčová slova) lze také provést pomocí overstrikingu. Jazyk je podrobně popsán v příručce Atlas Autocode Reference Manual.[1]
Další znaky Flexowriter, u kterých bylo zjištěno použití v AA, byly: α
v číslech s plovoucí desetinnou čárkou, např., 3,56α-7
pro moderní 3.56e-7
; β
znamenat druhá polovina a 48-bit Atlas paměť slovo; π
pro matematickou konstantu pi.
Když byla AA přenesena do Angličtina Electric KDF9 počítač, znaková sada byla změněna na Mezinárodní organizace pro normalizaci (ISO) a tento překladač byl obnoven ze staré papírové pásky Edinburgh Computer History Project a je k dispozici online, stejně jako vysoce kvalitní skenování původní edinburské verze příručky Atlas Autocode.[2]
Klíčová slova v AA byla odlišitelná od ostatních textů podtržením, které bylo implementováno pomocí overstrike ve Flexowriteru (v porovnání s tučným písmem v ALGOL). Byli také dva stropping režimy. Nejprve existoval režim „uppercasedelimiters“, kde byla všechna velká písmena (vnější řetězce) považována za podtržená malá písmena. Zadruhé, v některých verzích (ale ne v původní verzi Atlas) bylo možné stropní klíčová slova umístit „%
"podepsat před nimi, například klíčové slovo konec programu
lze zadat jako % end% programu%
nebo % endprogramu
. To výrazně omezilo psaní, protože bylo zapotřebí pouze jednoho znaku, než aby přehnalo celé klíčové slovo. Stejně jako v ALGOLu nebyly žádné vyhrazená slova v jazyce byla klíčová slova identifikována podtržením (nebo stropováním), nikoli rozpoznáním vyhrazených sekvencí znaků. V prohlášení -li token = pokud pak výsledek = token
, existuje obojí klíčové slovo -li
a proměnnou s názvem -li
.
Stejně jako v ALGOL, AA povoleno mezery v názvech proměnných, jako je celé číslo předchozí hodnota
. Mezery nebyly významné a byly odstraněny před analýzou v triviální fázi před lexingem s názvem „rekonstrukce linky ". To, co by překladač viděl ve výše uvedeném příkladu, by bylo" "-litoken = pokudpak výsledek= token
". Prostory byly možné částečně kvůli odlišování klíčových slov jinými způsoby a částečně proto, že zdroj zpracoval analýza bez skeneru, bez samostatné lexingové fáze, která umožňovala kontextovou citlivost lexikální syntaxe.
Syntaxe výrazů umožňuje vynechat operátor násobení, např. 3a
bylo považováno za 3 * a
, a a (i + j)
bylo považováno za a * (i + j)
-li A
nebylo pole. Při nejednoznačném použití byl použit nejdelší možný název (maximální žvýkání ), například ab
nebyl považován za a * b
, jestli ano nebo ne A
a b
byl prohlášen.
V původním automatickém kódu Atlas pro počítač Atlas mohly být instrukce strojového kódu Atlas interpolovány mezi příkazy AA.
Reference
- ^ A b C d Brooker, R.A .; Rohl, J.S. (1965). „Referenční příručka k automatickému kódu Atlas“. Oddělení informatiky na University of Manchester. Archivovány od originál dne 21. července 2011. Citováno 29. dubna 2020. (Skeny originálu )
- ^ A b Schofoeld, P.D .; Osbourne, M.R. (1965). "Programování v Atlas Autocode, zpráva počítačové jednotky č. 1" (PDF). University of Edinburgh. (Skeny originálu Archivováno 21.07.2011 na Wayback Machine )