ALGOL – Język Programowania
ALGOL (z ang. ALGOrithmic Language) to język programowania, który miał kluczowe znaczenie w historii informatyki. Jego wpływ na rozwój innych języków, w tym Pascala, jest nie do przecenienia. Przez około 20 lat od momentu powstania, ALGOL (lub jego odmiany) był de facto standardem dla opisu algorytmów w publikacjach naukowych oraz podręcznikach.
Prace nad ALGOL-em rozpoczęły się w drugiej połowie lat 50. XX wieku. Formalna specyfikacja języka została zawarta w raporcie ALGOL 58, a następnie rozwijana w raportach ALGOL 60 oraz ALGOL 68. To właśnie te wersje zdobyły uznanie wśród informatyków. ALGOL 58, oparty na FORTRANie, miał wiele braków, które ograniczały jego użyteczność dla programistów, podczas gdy ALGOL 60 wprowadził znaczące innowacje w dziedzinie języków programowania.
ALGOL 60 był pierwszym językiem, który powstał w wyniku międzynarodowej współpracy – w pracach nad nim brali udział między innymi Peter Naur i John Backus. Do opisu języka wykorzystano notację BNF, którą Backus stworzył przy projektowaniu Fortranu, a którą następnie zmodyfikował Naur. Raport dotyczący ALGOL 60 został opublikowany w maju 1960 roku i poprawiony w 1962 roku. Na podstawie tego języka, Niklaus Wirth stworzył Algol-W, który stał się podstawą dla języka Pascal.
W ALGOL 60 wprowadzono szereg nowatorskich rozwiązań, takich jak:
- instrukcje blokowe, umożliwiające grupowanie instrukcji w bloki
- przekazywanie parametrów do procedur zarówno przez wartość, jak i przez nazwę
- rekurencję, czyli wywoływanie procedur przez same siebie
- dynamiczne tablice, których rozmiar można było ustalać w trakcie działania programu
- słowa kluczowe – symbole nie mogły być używane jako identyfikatory w programie
- typy danych definiowane przez użytkownika – umożliwiające definiowanie abstrakcyjnych typów danych odpowiadających specyficznym problemom
Niemniej jednak, ALGOL 60 miał również swoje wady, które wpłynęły na jego ograniczony sukces w przemyśle. Nie określono w nim żadnych instrukcji wejścia/wyjścia, pozostawiając te kwestie dla konkretnych implementacji, co dodatkowo komplikowało jego elastyczność i niezależność od sprzętu. Dodatkowo, nie zyskał wsparcia ze strony firm komputerowych, w tym dominującego w latach 60. IBM-u, który był bardziej zainteresowany rozwojem Cobola i PL/I.
ALGOL 68 był kontynuacją idei ALGOL 60, wprowadzając operacje wejścia/wyjścia. Formalność języka osiągnęła jednak przesadny poziom – raport opublikowany w styczniu 1969 roku był na tyle skomplikowany, że wielu informatyków uznało go za nieczytelny. Mimo to, ALGOL 68 był jednym z nielicznych języków, które zostały zdefiniowane w sposób formalny przed ich implementacją i odniosły pewien sukces na rynku przemysłowym.
Polskie Translatory ALGOL 60
W Polsce powstały różne translatory języka ALGOL 60, w tym:
- dla ZAM-41 – kod wynikowy był częściowo interpretowany, co czyniło go znacznie wolniejszym od kodu wynikowego SAKO i mniej wygodnym w użyciu. Cieszył się zdecydowanie mniejszą popularnością niż SAKO.
- dla UMC-10
- dla Odra 1204 – opracowany przez zespół prof. Stefana Paszkowskiego z Uniwersytetu Wrocławskiego. Był doskonały i wzorowany na języku Gier Algol, wyprzedzając MOST.
Jedną z nielicznych udanych realizacji języka ALGOL 60 była polska implementacja oznaczana jako ALGOL 1204 dla maszyny Odra 1204, stworzona przez Jana Jerzego Szczepkowicza oraz Krystynę Jerzykiewicz.
W Polsce, 23 grudnia 1975 roku, Polski Komitet Normalizacji i Miar ustanowił normę PN-75/T-42110 dotyczącą Języka Programowania ALGOL 60. Norma ta miała na celu określenie konkretnych reprezentacji i wersji realizacyjnych (implementacji) języka dla różnych maszyn cyfrowych, dopuszczając pewne niewielkie odstępstwa. Wzorce normy były inspirowane ISO R 1538 Programing Language ALGOL.
Zobacz też
- Algek
Przypisy
Bibliografia
- 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
- Raport o Algolu 60 (ang.), polski przekład: Język algorytmiczny ALGOL-60 / Katalog HINT, Stefan S. Paszkowski, Polska Akademia Nauk, Centrum Obliczeniowe, Warszawa 1962 [dostęp 2018-10-09] (pol.).
- Jan J. 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.).