Niesamowity, zapomniany język programowania. Stworzyli go Polacy, wyprzedzając epokę o 40 lat
C, C++, Java, Ruby, Basic, Pascal, Asembler – te nazwy wielu użytkownikom komputerów coś mówią. Wiemy, że są to języki programowania. Wiemy, że dzięki nim komputery robią różne rzeczy. Wiemy, że programiści posługują się nimi do tworzenia aplikacji. Wiemy, że te wszystkie języki programowania powstały gdzieś daleko. Mało jednak kto wie, że przeszło 30 lat temu powstał w Polsce bardzo nowoczesny język programowania.
08.01.2016 | aktual.: 10.03.2022 09:55
Oczywiście język programowania bez komputera w zasadzie nie istnieje. Owszem, pierwsze programy – czy raczej algorytmy – powstawały zanim pojawiły się urządzenia zdolne je wykorzystać. W filmiku o historii komputerów wspomniałem choćby o Adzie Lovelace uważanej za pierwszą programistkę, jako że opracowała algorytm mający działać na maszynie analitycznej Charlesa Babbage’a, którą skonstruowano dopiero w naszych czasach.
Zobacz także
Również słynny Alan Turing napisał program szachowy, którego żaden współczesny mu komputer nie był w stanie obsłużyć. Niemniej język programowania nie istnieje bez komputerów.
Nemerle: język programowania z Wrocławia
W XXI wieku doczekaliśmy się wielu nowych języków programowania, w tym jednego polskiego. Nosi on nazwę Nemerle, wywodzącą się od imienia jednej z postaci z książek Ursuli Le Guin opowiadających o Ziemiomorzu.
Język wpierw opracowywali studenci Instytutu Informatyki Uniwersytetu Wrocławskiego (2003-2007), a potem rozwijany był już niezależnie (2008-2011). Nemerle to hybrydowy język programowania, wykorzystujący elementy programowania funkcyjnego i obiektowego. Autorem ogólnej jego koncepcji był Michał Moskal, aktualnie pracujący Badawczym Centrum Informatycznym Microsoft Research w Redmond. Ale Polacy zabłysnęli w tej dziedzinie już dużo, dużo wcześniej.
Pierwsze polskie komputery
W 1946 roku powstał pierwszy w historii komputer elektroniczny – słynny ENIAC (Electronic Numerical Integrator and Computer) wykorzystujący przeszło 18 000 lamp elektronowych. W powojennej, zniszczonej Polsce już w 1948 roku rozpoczęto prace nad podobnym urządzeniem.
W 1953 roku udało się skonstruować Analizator Równań Różniczkowych, który składał się z 400 lamp elektronowych.
W 1955 roku powstał EMAL zbudowany z 1000 lamp, z szybką pamięcią ultradźwiękową.
A w 1958 roku uruchomiono XYZ – pierwszą polską elektronową maszynę cyfrową. Dwa lata później pojawiła się jej udoskonalona wersja, czyli ZAM-2.
Na początku lat 60. XX wieku konstruowano również słynną Odrę, również komputer lampowy. Model nazwany Odra 1003 powstał w 1963 roku i był pierwszym, który produkowano seryjnie we wrocławskich Zakładach Elektronicznych Elwro.
W 1966 roku pojawił się tranzystorowy komputer drugiej generacji Odra 1013. Była to jedna z najlepszych maszyn w RWPG i dlatego spośród 84 wyprodukowanych, aż 53 wyeksportowano.
Polskie języki programowania
W krótkim czasie polscy pionierzy informatyki rozpoczęli prace nad językiem programowania zdolnym obsłużyć te komputery. Opierali się na literaturze, nie mając żadnych doświadczeń praktycznych. Pozbawione języka programowania maszyny zmuszano do działania wprowadzając instrukcje w postaci dwójkowej bezpośrednio do urządzenia, na początku poprzez karty perforowane.
W latach 1957-1960 na potrzeby XYZ i ZAM-2 zespół pod przewodnictwem Leona Łukaszewicza opracował System Adresów Symbolicznych (SAS, czyli współczesny asembler) oraz System Automatycznego Kodowania (SAKO). Autorami kompilatora SAKO byli Antoni Mazurkiewicz i Jan Borowiec.
Dziś uważa się, iż ten wczesny język programowania znacznie wyprzedzał osiągnięcia „krajów sąsiednich” (SAS obsługiwał choćby radziecki komputer Urał 2).
Najbardziej charakterystyczną cechą SAKO są polskie komendy, na przykład CZYTAJ, SKOCZ DO, niemniej nowatorska w tym języku była choćby obsługa wyrażeń boole’owskich, czego nie potrafił ówczesny Fortran, czyli pierwszy język programowania wysokiego poziomu.
Jak opisuje w swych wspomnieniach profesor Antoni Mazurkiewicz, pierwsze programy wykonywało się instrukcję po instrukcji, obserwując na służącym za ekran oscyloskopie efekty ich działania. Z czasem okazało się, że wykorzystanie SAKO znacznie przyspiesza wykonywanie programów oraz ułatwia ich modyfikowanie.
Odry 1003 i 1013 otrzymały natomiast język programowania zwany MOST 1 i MOST F (autorami byli m.in. Jan Jerzy Szczepkowicz i profesor Stefan Paszkowski). Wcześniej wszystkie programy użytkowe pisane były w tzw. języku wewnętrznym.
Między innymi dzięki temu Odry 1003 i 1013 otrzymały obszerną bibliotekę programów.
Zarówno MOST, jak i SAKO były to tzw. języki wysokiego poziomu, czyli niezrozumiałe „bezpośrednio” przez komputer, a wykorzystujące normalne słowa.
Dlatego wykonanie programu wymagało dokonania kompilacji – analogicznie rzecz się ma we współczesnych językach programowania. Kompilacji dokonuje kompilator, czyli program tłumaczący kod źródłowy w języku programowania na język maszynowy, zrozumiały dla komputera.
Co zaś dawały te wczesne języki programowania? – Możliwość programowania samemu bez specjalistycznego przygotowania, bez konieczności tłumaczenia problemu nie wprowadzonego w zagadnienie programiście, była niezmiernie cenna dla licznych nowocześnie myślących użytkowników – wspomina profesor Mazurkiewicz.
Nowy język i kompilator
W latach 70. XX wieku powstała cała seria komputerów Mera, których budowę po części oparto na K-202, odrzuconym wcześniej projekcie genialnego Jacka Karpińskiego.
Były to polskie mikrokomputery, z których najbardziej zaawansowanym na owe czasy okazał się Mera 400, produkowany w latach 1976-1987 w Warszawie.
To właśnie ówczesny dyrektor Instytutu Maszyn Matematycznych „Mera” i zastępca dyrektora Zjednoczenia MERA, profesor Andrzej Janicki, zlecił opracowanie nowego języka i kompilatora na Merę 400. Prace nad językiem ruszyły szybko, bo już w 1977 roku w Instytucie Informatyki Uniwersytetu Warszawskiego w zespole pod kierownictwem profesora Andrzeja Salwickiego. Po pięciu latach uniwersalny obiektowy język programowania Loglan 82 był gotowy.
Cały projekt zaowocował sformułowaniem języka programowania obiektowego na wiele lat przed powstaniem współczesnych języków, takich jak C++ czy Java.
Loglan 82 wyprzedził epokę
Dziś profesor Salwicki wspomina, że twórcy języka wyprzedzili epokę o 40 lat.
– Nie przypominam sobie żadnego innego tak zaawansowanego języka programowania, który byłby zdefiniowany, zbadany i zrealizowany przez polski zespół – dodaje profesor Andrzej Szalas, jeden z twórców Loglanu 82.
Choć pierwsze wersje języka pojawiły się na komputery Mera 400, to wciąż można w nim programować – kompilatory na platformy Linux i Windows są ogólnie dostępne.
– Nowe platformy Linux, Windows nie wymagały zbyt wiele pracy – mówi profesor Salwicki. – Architektura komputerów nie zmieniła się tak bardzo. Ich parametry techniczne za to znacznie – dodaje.
Loglan 82 miał wpływ na współczesne języki – choćby wyznaczanie bezpośrednich superklas w Javie (2010-2011) najpewniej powstało w oparciu o wyniki prac nad polskim językiem programowania.
Do dziś wiele cech wyróżnia Loglan 82 na tle współczesnych języków, takich jak C++ czy wspomniana Java, zastosowano w nim bowiem garść nieznanych konstrukcji i rozwiązań.
– Wzorce wykorzystywane dzisiaj znaliśmy w latach 80. – podkreśla profesor Salwicki. Wśród godnych uwagi cech języka wymienić można m.in.:
- System bezpiecznego zarządzania pamięcią obiektów
- Protokół alien call w procesach
- Klasy wewnętrzne i dziedziczenie ukośne
- Łączenie maszyn wirtualnych w wirtualny wieloprocesorowy komputer
- Łączenie zagnieżdżania klas i dziedziczenia
Co ciekawe, dziś żaden z istniejących języków programowania nie posiada wszystkich cech występujących w Loglanie 82. Jego twórcy wciąż sugerują, że zastosowanie wielu ich rozwiązań we współczesnych językach dałoby zyski liczone w dziesiątkach milionów euro na rok (choćby zaadaptowanie w językach Java czy C# systemu zarządzania obiektami wymyślony przez profesora Antoniego Kreczmara).
Loglan 82 w czasach współczesnych
W odróżnieniu od języków powstałych w latach 70. i 80., takich jak amerykańska Ada, współcześnie z języka Loglan 82 mogą korzystać wszyscy, choć wiele zastosowanych w nim rozwiązań docenią raczej ambitni programiści czy badacze.
Niemniej również wykładowcy i studenci mogą wiele zyskać. Loglan 82 pozwala bowiem choćby przedstawić wszystkie narzędzia i metody programowania obiektowego bez konieczności przechodzenia od jednego do kolejnego języka programowania.
Twórcy języka zachęcają do korzystania z niego na wszelkie możliwe sposoby.
Trudno sobie wyobrazić, że dziś język programowania, który powstał w epoce zupełnie innych komputerów, nie tylko działa, ale pozostaje niezwykle nowatorski.
– Ortografia jest dziś niemodna, ale to szczegół – zaznacza profesor Salwicki. – Żaden istniejący język programowania nie ma takiego wkładu intelektualnego i takiej wartości użytkowej jak Loglan – twierdzi mój rozmówca.
Szkoda tylko, że mało kto zdaje sobie z tego sprawę.
Loglan dt 1986 07 18
W 1986 roku nagrodę państwowa pierwszego stopnia w dziedzinie nauki otrzymał zespół Loglanu. Film nakręcił dziennikarz TVP.