Algol – Algorithmic Language, język programowania, który odegrał ważną rolę w historii informatyki. Od momentu powstania, przez około 20 lat język, lub jego dialekty, był standardem opisu algorytmów w publikacjach naukowych.
Prace nad Algolem rozpoczęto w drugiej połowie lat 50., formalną specyfikację języka opublikowano w raporcie Algol 58, następnie język rozwinięto w raportach Algol 60 i Algol 68. Te właśnie wersje zdobyły uznanie informatyków. O ile Algol 58 oparty był na Fortranie i brakowało w nim wielu niezbędnych dla programisty konstrukcji, Algol 60 stanowił przełom w dziedzinie języków programowania.
Algol 60 był pierwszym językiem zaprojektowanym we współpracy międzynarodowej – w pracach nad nim uczestniczyli między innymi Peter Naur i John Backus. Do opisu języka wykorzystano stworzoną przez Backusa podczas projektowania Fortranu notację BNF, zmodyfikowaną przez Naura. Raport Algola 60 opublikowano w maju 1960, poprawiono go w 1962. Na podstawie Algola 60 Niklaus Wirth stworzył język Algol W, który posłużył mu następnie do zdefiniowania Pascala.
W Algolu 60 wprowadzono:
- instrukcje blokowe, pozwalające na grupowanie instrukcji w bloki
- przekazywanie parametrów do procedur przez wartość i przez nazwę
- rekurencję – wywoływanie procedur przez siebie
- tablice dynamiczne – ich rozmiar mógł zmieniać się w trakcie działania programu.
- słowa kluczowe – symbole użyte jako słowa kluczowe nie mogą być użyte jako identyfikatory w programie
- typy danych definiowane przez użytkownika – użytkownik mógł zdefiniować abstrakcyjne typy danych najlepiej pasujące do konkretnego problemu
Algol 60 miał również wady, które zdecydowały o tym, że nie odniósł sukcesu przemysłowego. Nie określono w nim żadnych instrukcji wejścia/wyjścia, pozostawiając je konkretnym implementacjom, które na dodatek były utrudnione przez jego elastyczność i niezależność od sprzętu. Brak było przekazywania parametrów przez zmienną (lub referencję). Nie uzyskał też wsparcia firm komputerowych (głównie ze strony dominującego na rynku w latach 60. IBM, który zainteresowany był rozwojem Cobola i PL/I).
Algol 68 był rozwinięciem idei Algola 60, wprowadzono w nim wreszcie operacje wejścia/wyjścia. Ścisłe określenie języka posunięto jednak do granic: opublikowany w styczniu 1969 roku raport języka był tak formalny, że wielu informatyków uznało go za całkowicie nieczytelny. Mimo to Algol 68 był pierwszym z niewielu języków zdefiniowanych w sposób formalny przed implementacją, które odniosły pewien sukces przemysłowy.
Raport Algola 60 (ang.)