ALGOL: The Best Language You’ve Never Heard Of

Ujawnienie informacji: Twoje wsparcie pomaga utrzymać stronę w ruchu! Zarabiamy opłatę za polecenie niektórych usług, które polecamy na tej stronie. Dowiedz się więcej

ALGOL jest prawdopodobnie najbardziej wpływowym językiem, o którym nigdy nie słyszałeś.

Inne ważne języki z tej samej epoki – Fortran, COBOL, Lisp – wciąż są często używane (relatywnie rzecz biorąc).

ALGOL był ważny sam w sobie, zwłaszcza w środowisku akademickim i matematycznym. Ale jego największy wpływ był na rozwój innych języków. Większość języków używanych obecnie zawdzięcza coś ALGOL-owi

Krótka historia ALGOL-a

ALGOL został pierwotnie wymyślony w późnych latach 50. przez wspólny komitet amerykańskich i europejskich informatyków, spotykających się w Zurychu. Ich praca została wydana jako język znany obecnie jako ALGOL 58.

Drugie wydanie przez grupę, znane jako ALGOL 60, stało się standardową wersją języka w powszechnym użyciu.

Ta wersja, opisana w słynnym już Raporcie ALGOL 60, miała głęboki wpływ na dziedzinę projektowania języków programowania. ALGOL 68, ostatnia „oficjalna” wersja języka nie została dobrze przyjęta przez społeczność ALGOL.

ALGOL nigdy tak naprawdę nie przyjął się w programowaniu biznesowym, poza niektórymi aplikacjami analizy matematycznej używanymi przez branżę finansową.

Był jednak szeroko stosowany w informatyce akademickiej i matematyce, i był standardowym językiem opisu algorytmów w latach 80. i 90.

Wpływ Algola na inne języki

Składnia i struktura Algola miały bezpośredni wpływ na wiele innych języków, które stały się znane jako języki „podobne do Algola”.

Języki te obejmują Simulę, C, Pascala i Adę. Niektóre z tych powiązań są dość bezpośrednie: Pascal, na przykład, został opracowany przez Niklausa Wirtha, który wcześniej zbudował pochodną ALGOL-a o nazwie ALGOL W.

Najbardziej znanym członkiem tej grupy jest C, który zrodził własną rodzinę pochodnych i potomków: C++, C#, Objective-C i D – by wymienić tylko kilka z nich. Składnia PHP jest również oparta na C, co oznacza, że najczęściej używany w Internecie język server-side wywodzi się z ALGOL-a.

Jeszcze bardziej ALGOL wpłynął na sposób, w jaki języki programowania są pojmowane i opisywane.

Komputerolog John Backus zaproponował opis gramatyki dla ALGOL-a (PDF), który został użyty w ALGOL 60 Report, zredagowanym przez Petera Naura. Ten język opisu stał się znany jako Backus-Naur Form (BNF). BNF, i EBNF („rozszerzony”), jest obecnie standardowym sposobem opisu gramatyki języka formalnego.

Zasoby języka ALGOL

ALGOL jest starym, w większości przestarzałym językiem, i dlatego może być bardzo trudno znaleźć zasoby i wiarygodne informacje na jego temat. Na szczęście nie musisz tego robić. Przeszukaliśmy internet, aby przynieść ci najważniejsze zasoby do nauki o ALGOLU.

Historyczne samouczki

Wszystkie wartościowe samouczki o ALGOLU zostały napisane dawno temu. Na szczęście, najlepsze z nich zostały zeskanowane i udostępnione online.

  • A Course of Algol 60 Programming (PDF) jest samouczkiem na temat języka, napisanym przez Petera Naura, redaktora oryginalnego ALGOL 60 Report (patrz poniżej)

  • Informal Introduction to ALGOL 68, Revised Edition (PDF) autorstwa Lindsey i Meulen, został pierwotnie opublikowany w 1977r, i jest obecnie dostępny za darmo online

  • Programming Algol 68 Made Easy (PDF) autorstwa Sian Leitch, to kolejna klasyczna książka

  • A Tutorial on Algol 68 (PDF) to artykuł z czasopisma z 1976 roku, stanowiący zarówno wprowadzenie do języka, jak i spojrzenie na historię informatyki.

Kompilatory

  • Algol 68 Genie to nowoczesny, międzyplatformowy kompilator ALGOL-a – prawdopodobnie najłatwiejszy sposób na rozpoczęcie pracy z ALGOL-em na komputerze; nie przegap Learning Algol 68 Genie (PDF) autorstwa Marcela van der Veera, który zawiera samouczek języka i przykładowe programy

  • Wykonuj Algol Online z interpreterem Algol w przeglądarce od Tutorials Point

  • Algol-68 to C jest przenośnym tłumaczem/kompilatorem, pozwalający na uruchamianie ALGOL-a 68 w dowolnym środowisku z kompilatorem C

  • Z80 ALGOL Compiler z maszyną wirtualną, do uruchamiania ALGOL-a na MS-DOS.

Przykładowe programy ALGOL

  • Hello World! i Compute the Mean, napisane w ALGOL-u dla Unisys (Burroughs) A-series mainframe

  • 99 Bottles of Beer on the Wall, zaprogramowane w ALGOL-u 68 i w ALGOL-u 60

  • Sieve of Eratosthenes in ALGOL 60 pokazuje przykładowy program do znajdowania liczb pierwszych w ALGOL-u.

Zasoby historyczne

  • Report on the Algorithmic Language ALGOL 60 (PDF) pod redakcją Petera Naura, jest oryginalnym dokumentem definiującym język – lektura obowiązkowa dla każdego badacza ALGOL-a; Poprawiony Raport (PDF) zawiera ostateczną, oficjalną definicję języka; Poprawiony Raport jest również dostępny we współczesnym wydaniu krytycznym z poprawionymi erratami (PDF)

  • Algol68.org to strona poświęcona temu językowi, zawierająca wiele dodatkowych zasobów i materiałów

  • Projekt History of ALGOL realizowany przez Software Preservation Group zawiera mnóstwo materiałów dotyczących ALGOL-a, w tym oryginalne prace, kompilatory, artykuły, aplikacje i wiele innych.

Książki o języku ALGOL

  • A Guide to ALGOL Programming (1962) autorstwa Daniela McCrackena jest książką omawiającą język ALGOL 60

  • Programming – ALGOL (1969) autorstwa D J Malcolme-Lawes jest wczesnym podręcznikiem języka dla szerokiego grona odbiorców, i zawiera historycznie fascynujące wprowadzenie do technologii komputerowej

  • Programming and Problem-Solving in Algol 68 (1978) autorstwa Andrew JT Colina jest książką wprowadzającą zarówno do programowania komputerowego w ogóle, jak i do ALGOL-a w szczególności

  • An Introduction to Algol 68 Through Problems (2014) autorstwa Learnera i Powella również wprowadza do programowania komputerowego przy użyciu ALGOL-a, wykorzystując serię praktycznych problemów obliczeniowych

  • Programming by Case Studies: An Algol Primer (1969) autorstwa Chedzoya i Forda jest kolejnym wprowadzeniem do programowania za pomocą ALGOL-a, ale z naciskiem na matematykę.

ALGOL i inne języki

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) Jamesa Ogdena zawiera interesujące porównanie właściwości, mocnych i słabych stron Basicu, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60 i C

  • Numerical Methods of Mathematical Optimization (1968) pod redakcją Kunzi et al obejmuje obliczenia matematyczne przy użyciu zarówno FORTRAN jak i ALGOL

  • Data Structures of Pascal, ALGOL 68, PL/1 i Ada (1986) autorstwa Lewiego i Paredaensa, obejmuje podstawowe pojęcia, a nie praktyczne przykłady programowania w wymienionych językach

  • FORTRAN, PL/I and the Algols (1979) autorstwa Briana Meeka porównuje te trzy ważne rodziny języków

  • Expert C Programming: Deep C Secrets (1994) Petera van der Lindena zawiera interesujące szczegóły dotyczące wpływu, jaki ALGOL miał na rozwój C

  • Algol-like Languages Volume 1 (1996) and Volume 2 (1997) pod redakcją O’Hearna i Tennenta to zbiór esejów badających historię ALGOL-a i jego wpływ na rozwój innych języków programowania.

Podsumowanie

ALGOL nie jest językiem, którego trzeba się nauczyć, aby dostać pracę lub odnieść sukces jako programista. Miał on jednak ogromny wpływ na praktykę i teorię programowania komputerowego.

Jeśli interesujesz się projektowaniem języków lub historią informatyki, ALGOL jest ważnym punktem odniesienia, z którym warto się zapoznać.

Dalsza lektura i zasoby

Mamy więcej przewodników, samouczków i infografik związanych z kodowaniem i rozwojem:

  • Zasoby Fortran: jeden z pierwszych języków wysokiego poziomu, nadal szeroko stosowany w programowaniu naukowym.

  • COBOL Wprowadzenie i zasoby: klasyczny język programowania biznesowego.

  • Prolog Zasoby: Prolog był wczesnym językiem programowania logicznego.

What Code Should You Learn?

Confused about what programming language you should learn to code in? Sprawdź naszą infografikę, What Code Should You Learn? Nie tylko omawia ona różne aspekty języków, ale także odpowiada na ważne pytania, takie jak: „Ile pieniędzy zarobię, programując Javę?”

.

Dodaj komentarz