Niesamowity, zapomniany język programowania. Stworzyli go Polacy, wyprzedzając epokę o 40 lat

Niesamowity, zapomniany język programowania. Stworzyli go Polacy, wyprzedzając epokę o 40 lat08.01.2016 12:08
Zdjęcie starego komputera pochodzi z serwisu Shutterstock
Tomek Kreczmar

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.

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.

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.

„Alan Turing” autorstwa Jon Callas from San Jose, USA, Źródło zdjęć: © Alan Turing. Licencja CC BY 2.0 na podstawie Wikimedia Commons
„Alan Turing” autorstwa Jon Callas from San Jose, USA
Źródło zdjęć: © Alan Turing. Licencja CC BY 2.0 na podstawie Wikimedia Commons

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.

WikiCommons, Źródło zdjęć: © Elektronowa, cyfrowa maszyna matematyczna XYZ
WikiCommons
Źródło zdjęć: © Elektronowa, cyfrowa maszyna matematyczna XYZ

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.

Polski komputer drugiej generacji Odra 1003., Źródło zdjęć: © WikiCommons
Polski komputer drugiej generacji Odra 1003.
Źródło zdjęć: © WikiCommons

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.

„Karta dziurkowana 1” Nova at pl.wikipedia, Źródło zdjęć: © Licencja CC BYSA 3.0 na podstawie Wikimedia Commons
„Karta dziurkowana 1” Nova at pl.wikipedia
Źródło zdjęć: © Licencja CC BYSA 3.0 na podstawie Wikimedia Commons

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.

Leon Łukaszewicz (zdj. Janina Wasierowska-Bierzanek), Źródło zdjęć: © Licencja CC BY 2.5 na podstawie Wikimedia Commons
Leon Łukaszewicz (zdj. Janina Wasierowska-Bierzanek)
Źródło zdjęć: © Licencja CC BY 2.5 na podstawie Wikimedia Commons

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.

Odra 1013 (zdjęcie Marcin Wichary), Źródło zdjęć: © Wikimedia Commons
Odra 1013 (zdjęcie Marcin Wichary)
Źródło zdjęć: © Wikimedia Commons

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.

MERA-400 w Muzeum Techniki (Jakub Filipowicz), Źródło zdjęć: © http://creativecommons.org/licenses/byncsa/4.0/
MERA-400 w Muzeum Techniki (Jakub Filipowicz)
Źródło zdjęć: © http://creativecommons.org/licenses/byncsa/4.0/

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.

Źródło artykułu:WP Gadżetomania
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.