ALGOL
ALGOL (z ang. ALGOrithmic Language) – język programowania, który odegrał ważną rolę w historii informatyki. Wpłynął istotnie na kształtowanie się innych języków, w tym Pascala. Od momentu powstania przez około 20 lat ALGOL (lub jego dialekty) był de facto standardem opisu algorytmów w publikacjach naukowych i podręcznikach.
Prace nad Algolem rozpoczęto w drugiej połowie lat 50. XX wieku. 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 o Algolu 60 opublikowano w maju 1960, poprawiono go w 1962. Na podstawie języka ALGOL 60 Niklaus Wirth stworzył 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ł być ustalany 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. 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 Algolu 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.
Polskie translatory ALGOL 60
edytuj- dla ZAM-41 – kod wynikowy częściowo interpretowany, znacznie wolniejszy od kodu wynikowego SAKO i mniej wygodny. Wśród użytkowników zdecydowanie mniej popularny od SAKO.
- dla UMC-10
- dla Odra 1204 – opracowany przez zespół prof. Stefana Paszkowskiego z Uniwersytetu Wrocławskiego. Doskonały, wzorowany na języku Gier Algol. Wyparł MOST.
Do nielicznych udanych i pełnych realizacji maszynowych języka ALGOL 60 zalicza się polską implementację oznaczaną jako ALGOL 1204 dla maszyny Odra 1204 (Jan Jerzy Szczepkowicz, Krystyna Jerzykiewicz)[1].
W Polsce została ustanowiona 23 grudnia 1975 r. przez Polski Komitet Normalizacji i Miar norma PN-75/T-42110 Język Programowania ALGOL 60. Norma była przeznaczona do stosowania przy określaniu konkretnych reprezentacji i wersji realizacyjnych (implementacji) języka dla konkretnych maszyn cyfrowych, dopuszczając pewne niewielkie odstępstwa realizacyjne. Zalecenia normy wzorowane były na ISO R 1538 Programing Language ALGOL.
Zobacz też
edytujPrzypisy
edytuj- ↑ Krystyna Jerzykiewicz, Jan J. Szczepkowicz, ALGOL 1204. System programowania maszyny cyfrowej ODRA 1204, PWN, Warszawa 1971.
Bibliografia
edytuj- Stefan Paszkowski, Język ALGOL 60, Państwowe Wydawnictwo Naukowe, Warszawa 1968.
- Jerzy Kucharczyk, Maciej Sysło, Algorytmy optymalizacji w języku ALGOL 60, Państwowe Wydawnictwo Naukowe, Warszawa 1975.
- Joanna Jonkisz, Jan Makuch, Stanisław Starzak, Programowanie w językach Algol 60 i Fortran 1900, Wydawnictwo Politechniki Łódzkiej, Łódź 1982, Skrypty dla szkół wyższych, Politechnika Łódzka, Ośrodek Elektronicznej Techniki Obliczeniowej.
- Jan Małuszyński, Krzysztof Pisecki, Algol 68. Wprowadzenie do języka Algol 68; A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff,.H. Lindsey, L.G.L.T. Meertens, R.G. Fisker, w tłumaczeniu Jana Małuszyńskiego i Krzysztofa Piseckiego, Zmieniony raport o języku algorytmicznym Algol 68, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka, ISBN 83-204-0161-5.
- PN-75/T-42110, Język programowania Algol 60, Wydawnictwa Normalizacyjne (Polski Komitet Normalizacyjny), Warszawa 1976, opracowanie Polskiej Normy: Jowita Koncewicz, Maria Łącka, Instytut Maszyn Matematycznych w Warszawie.
Linki zewnętrzne
edytuj- Raport o Algolu 60 (ang.), polski przekład: Język algorytmiczny ALGOL-60 / Katalog HINT, Stefan Paszkowski, Polska Akademia Nauk, Centrum Obliczeniowe, Warszawa 1962 [dostęp 2018-10-09] (pol.).
- Jan Madey , ALGOL 60. GIER-ALGOL III / Jan Madey / Katalog HINT, Wydawnictwa Uniwersytetu Warszawskiego, 1965 [dostęp 2018-10-10] (pol.).
- GIER-ALGOL / Mieczysław Warmus / Katalog HINT, hint.org.pl, 1966 [dostęp 2018-11-21] (pol.).