ALGOL 58 - ALGOL 58
Paradigma | procesní, rozkazovací způsob, strukturovaný |
---|---|
Rodina | ALGOL |
Navrhl | Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, Klaus Samelson, John Backus, Charles Katz, Alan Perlis, Joseph Henry Wegstein |
Poprvé se objevil | 1958 |
Psací disciplína | Statický, silný |
Rozsah | Lexikální |
Ovlivněno | |
FORTRAN, TO, Plankalkül,[1] Nadplán „Sequentielle Formelübersetzung | |
Ovlivněno | |
Většina následných imperativních jazyků (Algol ) |
ALGOL 58, původně pojmenovaný IAL, je jednou z rodiny ALGOL počítač programovací jazyky. Jednalo se o raný kompromisní design, který byl brzy nahrazen ALGOL 60. Podle John Backus[2]
„Konference v Curychu ACM-GAMM měla při navrhování IAL dva hlavní motivy: (a) poskytnout prostředky pro komunikaci numerických metod a dalších postupů mezi lidmi a (b) poskytnout prostředky pro realizaci uvedeného procesu na různých stroje ... "
ALGOL 58 představil základní pojem složený výpis, ale bylo omezeno na regulační tok pouze, a nebylo to spojeno rozsah identifikátoru způsobem, který Algol 60. let bloky byly.
název
Bauer připisuje jméno Hermann Bottenbruch, který vytvořil tento termín algoritmický jazyk (algorithmische Sprache) v roce 1957, „alespoň v Německu“.[3]
Dějiny
Byly předloženy návrhy na univerzální jazyk Sdružení pro výpočetní techniku (ACM) a také Němci Gesellschaft für Angewandte Mathematik und Mechanik ("Společnost aplikované matematiky a mechaniky") (GAMM). Bylo rozhodnuto uspořádat společné setkání, které by je spojilo. Setkání se konalo od 27. května do 2. června 1958 v ETH Curych a zúčastnili se ho následující lidé:
- Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, a Klaus Samelson (z GAMM)
- John Backus, Charles Katz, Alan Perlis, a Joseph Henry Wegstein (z ACM).
Původně se navrhoval jazyk IAL (Mezinárodní algebraický jazyk) ale podle Perlise,[4]toto bylo odmítnuto jako „‚ nevyslovitelné 'a pompézní zkratka “. Místo toho byl navržen ALGOL, ačkoli oficiálně byl přijat až o rok později. Publikace následující po schůzce stále používala název IAL.[5]
Do konce roku 1958 skupina ZMMD vybudovala funkční kompilátor ALGOL 58 pro Z22 počítač. ZMMD byla zkratka pro Zürich (kde pracoval Rutishauser), München (pracoviště Bauera a Samelsona), Mainz (umístění počítače Z22), Darmstadt (pracoviště Bottenbruch).
ALGOL 58 viděl určité implementační úsilí na IBM, ale snaha byla v konkurenci s FORTRAN a brzy opuštěný. To bylo také implementováno na Dartmouth College na LGP-30, ale tato implementace se brzy vyvinula ALGOL 60. Implementace pro Burroughs Volal 220 BALGOL vyvinul se také podle svých vlastních linií, ale zachoval si většinu původního charakteru ALGOL 58.[6]
Primárním příspěvkem programu ALGOL 58 byly pozdější jazyky; byl použit jako základ pro ŽOVIÁLNÍ, ŠÍLENÝ, NELIAC a ALGO. To bylo také používáno v průběhu roku 1959 k publikování algoritmy v CACM, začínající trend používání ALGOL notace v publikaci, který pokračoval po mnoho let.
Časová řada implementací variant ALGOL 58
název | Rok | Autor | Stát | Popis | Cílová CPU |
---|---|---|---|---|---|
Implementace ZMMD | 1958 | Friedrich L. Bauer, Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch | Německo | Z22 | |
NELIAC | 1958 | Laboratoř námořní elektroniky | USA | AN / USQ-17 | |
ŽOVIÁLNÍ | 1960 | Jules Schwartz | USA | Byl DOD HOL před Ada (programovací jazyk) | Různé (viz článek) |
BALGOL | 1960 | Joel Merner a kol. | USA | Burroughs Corporation B220 | |
ŠÍLENÝ | 1960 | Michiganská univerzita | USA | IBM 7090 / 7094 mainframe, poté portován do poloviny 60. let Univac 1108 | |
Dartmouth ALGOL 30 | 1962 | Thomas Eugene Kurtz et al. - se vyvinul do ALGOL 60 | USA | LGP-30 | |
SUBALGOL | 1962 | Bob Braden, Lawrence M. Plemeno a Roger Moore, Stanfordská Univerzita | USA | Prodloužení BALGOL | IBM 7090 |
ALGO | ~ | Bendix Corporation | USA | Bendix G-15 |
Vliv ALGOL 58 na ALGOL 60
- IAL představil tříúrovňový koncept referenčního, publikačního a hardwarového jazyka a koncept „oddělovačů slov“, které mají samostatné zastoupení od volně zvolených identifikátorů (tedy žádná vyhrazená slova). ALGOL 60 tento tříúrovňový koncept zachoval.[7]
- Rozdíl mezi přiřazením (
:=
představující šipku směřující doleva) a vztah rovnosti=
byl představen v IAL a uchováván v ALGOL 60. - IAL i ALGOL 60 umožňují pole s libovolnými dolními a horními hranicemi dolního indexu a umožňují definovat hranice dolního indexu celočíselnými výrazy.
- IAL i ALGOL 60 umožňují vnoření deklarací procedur a odpovídajících oborů identifikátorů.
- Zpráva IAL popisovala substituci parametrů v podstatě stejnými termíny jako zpráva ALGOL 60, přičemž byla ponechána otevřená možnost volat podle jména. Není jasné, zda k tomu došlo v té době.
- IAL umožňuje číselné popisky, které ALGOL 60 uchovával.
- Možnost zahrnout jiný kód než ALGOL do programu již byla naznačena v souvislosti s parametry postupů.
- IAL i ALGOL 60 mají a označení přepínače, ale nesouvisející s příkaz switch v jazyce C a dalších jazycích.
- Řádkové funkce formuláře F(X) := X / 2; byly navrženy v IAL, ale upustil v ALGOL 60.
- Deklarace procedur IAL poskytují samostatné seznamy deklarací pro vstupní a výstupní parametry, procedura může vrátit více hodnot; tento mechanismus byl vyměnit v ALGOL 60 s hodnota prohlášení.
- Lze umístit proměnná prohlášení v IAL kdekoli v programu a ne nutně na začátku postupu. Naproti tomu by měla nastat prohlášení v bloku ALGOL 60 před všechny příkazy k provedení.
- The pro-výpis má formu
pro i: = základní (přírůstkový) limit
, přímo připomínající smyčku Rutishauserova programovacího jazyka Nadplán, nahrazení=
s:=
a nahrazení německého klíčového slovaSrst
s přímým anglickým překladempro
; ALGOL 60 nahradil závorky slovem oddělovačekrok
adokud
, takže předchozí příkaz by byli:=základna krok přírůstek dokud omezit
. - IAL -li-příkaz nemá a pak- klauzule nebo jiný-doložka; to spíš stráže následující prohlášení. IAL poskytuje pokud ano- prohlášení, které čistě umožňuje testování více podmínek. Oba byly nahrazeny ALGOL -li-pak se zavedením „visícíjiný „nejednoznačnost.
- IAL poskytuje makro-substituci s dělat-prohlášení; toto bylo upuštěno v ALGOL 60.
- IAL umožňuje vynechání jednoho nebo více dolních indexů pole při předávání polí do procedur a poskytnutí jakéhokoli nebo všech argumentů proceduře předané jiné proceduře.
- Logické operátory infix IAL mají stejnou prioritní úroveň. Exponenti jsou označeni spárovanými šipkami nahoru a dolů, které odstranily jakékoli nejasnosti ohledně správné interpretace vnořených exponentů; ALGOL 60 nahradil spárované šipky jedinou šipkou nahoru, jejíž funkce je ekvivalentní FORTRANU **.
- Zpráva IAL výslovně neurčuje, které standardní funkce mají být poskytnuty, a neurčitě odkazuje na „standardní analytické funkce“. Zpráva ALGOL 60 obsahuje přesnější seznam standardních funkcí.
Reference
- ^ Rojas, Raúl; Hashagen, Ulf (2002). První počítače: historie a architektury. MIT Stiskněte. p. 292. ISBN 978-0262681377. Citováno 25. října 2013.
- ^ Backus, J.W. (1959). „Syntax a sémantika navrhovaného mezinárodního algebraického jazyka v Curychu na konferenci ACM-GAMM“. Sborník z mezinárodní konference o zpracování informací. UNESCO. 125–132.
- ^ Aspray, William (17 února 1987), Rozhovor s Friedrichem L. Bauerem (PDF), Charles Babbage Institute, archivovány z originál (PDF) dne 22. dubna 2012
- ^ Perlis, A.J. (1981). "Diskuse o výpočetní technice v padesátých letech". ACM národní konference. Nashville, TN. Los Alamito, Kalifornie, 1995: (Přepis v J. A. N. Lee (ed.), Computer Pioneers, IEEE Computer Society Press, str. 545–556).CS1 maint: umístění (odkaz)
- ^ Perlis, A.J.; Samelson, K. (1958). "Předběžná zpráva: mezinárodní algebraický jazyk". Komunikace ACM. 1 (12): 8–22. doi:10.1145/377924.594925. S2CID 28755282.
- ^ „Algol 58 implementace a dialekty“, Software Preservation Group, Muzeum počítačové historie. Donald Knuth je citován na BALGOL: "Jsem ve svém druhém ročníku na Caltech a byl jsem konzultantem Burroughs. Po dokončení mého kompilátoru pro Burroughs jsem nastoupil do oddělení plánování produktu. Oddělení plánování produktu bylo z velké části složeno z lidí, kteří napsali dosud nejlepší software na světě, kterým byl kompilátor Burroughs ALGOL pro počítač 220. To byl velký skok vpřed pro software. Byl to první software, který používal zpracování seznamu a datové struktury na vysoké úrovni v inteligentním způsobem. Vzali myšlenky Newella a Simona a aplikovali je na kompilátory. Kolem všech ostatních věcí, které jsme dělali, to probíhalo kruhy. “ [Don Knuth, CHM Oral History, 2007, strana 9]
- ^ Naur, P (editor) (1962). Revidovaná zpráva o algoritmickém jazyce ALGOL 60 (PDF). Mezinárodní federace pro zpracování informací.CS1 maint: další text: seznam autorů (odkaz)
externí odkazy
- Algol 58 ve skupině Software Preservation Group (srov. Muzeum počítačové historie )
- Zpráva Algol 58 od CACM ve skupině Software Preservation Group