Nasza Loteria NaM - pasek na kartach artykułów

Dwie twarze programowania

Piotr Drabik
Piotr Drabik
Początek implementacji "99 Bottles of Beer" w języku Malbolge
Początek implementacji "99 Bottles of Beer" w języku Malbolge scren/99-bottles-of-beer.net/language-malbolge-995.html
Podobnie jak ludzie składają się ze związków DNA, tak systemy operacyjne czy strony internetowe definiowane są przez algorytmy. A samo programowanie kryje wiele tajemnic, które powinni poznać nie tylko zapaleńcy informatyki.

Jednym z istotnych problemów jest wybór układu, który ma tendencję do ograniczania czasu zakończenia obliczeń do minimum - tak przed ponad 170 laty pisała Ada Lovelace, świadek przemian w dziewiętnastowiecznej Anglii a przede wszystkim pierwsza programistka w historii informatyki. Cytowane wcześniej jej słowa podkreślają całą istotę tworzenia algorytmów, których zamiarem jest znalezienie najkrótszej drogi do osiągnięcia ustalonego celu, choć bezpośrednio odnoszą się do funkcjonowania tzw. maszyny analitycznej. To urządzenie, będące protoplastą komputera znanego w dzisiejszej formie, zostało zaprojektowane przez wybitnego brytyjskiego matematyka Charlesa Babbage'ga (twórca m.in. tablic logarytmicznych), z którym ściśle współpracowała Lovelace. Historia zarówno samej maszyny analitycznej, jak i życia niepokornej programistki jest tylko wstępem do współczesnego spojrzenia na informatykę.

Algorytm z cieniu romantyzmu

Ada Lovelace, urodzona w 1815 r. córka Lorda Byrona (jednego z największych angielskich poetów i dramaturgów) oraz Annabelli Milbanke, postanowiła obrać inna drogą niż większość kobiet dziewiętnastowiecznej Anglii, które mogły liczyć na nikłą partycypację w życiu społecznym. W wyborze życiowej drogi Ady, miał mieć spory wpływ rozpad małżeństwa rodziców (Annabella rozstała się z Byronem po roku małżeństwa, gdy jego romanse wyszły na światło dzienne) - choć przyszła programistka miała wówczas zaledwie miesiąc, to przez kolejne lata życia dorastała w niechęci do ojca i poezji. Od najmłodszych lat matka dbała o jej wykształcenie z zakresu matematyki i nauk przyrodniczych, kierując się odrazą do epoki romantyzmu. Z czasem jednak okazało się, że Ada posiada niezwykłe zdolności przyswajania wiedzy z przedmiotów ścisłych - jedną z jej nauczycielek była Mary Fairfax Somerville, pochodząca ze Szkocji uznana badaczka astronomii i fizyki. To własnie ona poznała Adę z Charlesem Babbage, który poświęcił swoją karierę naukową dla zbudowania protoplasty współczesnych komputerów.

Zaprojektowana przez niego maszyna analityczna, przy pomocy mechanicznych elementów napędzanych silnikiem parowym miała wykonywać skomplikowane operacje matematyczne, do których dane wprowadzano by za pomocą kart perforowanych (dziurkowanego arkusza, gdzie każda wyszczególniona pozycja odpowiadała jednemu bitowi). Maszyna, choć na pierwszy rzut oka kompletnie odmienna od dzisiejszych laptopów czy smartfonów, ma z nimi jednak wiele wspólnego. Projekt Charlesa Babbage wspominał o "magazynie" (pamięć operacyjna) czy jednostce obliczeniowej w milach (procesor). Ada Lovelace, zafascynowana planami maszyny analitycznej postanowiła pomóc jej twórcy w udoskonaleniu tego pomysłu. Przygotowała metodę obliczania liczb Bernoulliego (ciąg liczb wymiernych, wykorzystywany w analizie matematycznej i teorii liczb) za pomocą projektowanej maszyny, co jest uznane za pierwszy algorytm w historii informatyki.

Lovelace jednak miała w planach wiele innych zastosowań maszyny analitycznej, niż tylko wykonywanie skomplikowanych obliczeń matematycznych. Zamierzała użyć ją w przyszłości do komponowania muzyki czy tworzenia grafiki - dziś trudno sobie wyobrazić komputery bez tych zastosowań. Z obłoku marzeń, na ziemię sprowadziło ja brak zainteresowania jej projektami maszyny analitycznej przez brytyjski rząd. Jej sposobem na kłopoty finansowe, stały się zakłady na wyścigach konnych. Grała według opracowanego przez siebie systemu, który zamiast wygranych przynosił jej coraz większe straty (spłatami jej długów często zajmował się William King, małżonek matematyczki). Ada zmarła w wieku zaledwie 36 lat, w wyniku powikłań raka szyjki macicy, osieracając dwóch synów i córkę oraz zostawiając po sobie sporo kontrowersji.

Wielu współczesnych badaczy jej biografii, poddaje pod wątpliwość jej dokonania naukowe argumentując, że nie miała dostatecznego talentu do opracowania skomplikowanych algorytmów. Poza tym, sam Charles Babbage miał zaangażować Adę Lovelace do projektu maszyny analitycznej nie ze względu na jej szerokie kompetencje, ale dla zwykłej reklamy ekscentrycznego pomysłu. Nie bywam usatysfakcjonowana rozumieniem czegokolwiek, ponieważ wiem, że moja zdolność pojmowania może być jedynie nieskończenie małym ułamkiem tego, co chciałabym zrozumieć - pisała za życia sama zainteresowana. Pomimo serii niepotwierdzonych domysłów, postać brytyjskiej matematyczki na stałe wpisała się w historię informatyki - podobizna Ady Lovelance widnieje na hologramach produktów firmy Microsoft a w 1980 r. amerykański Departament Obrony nowo opracowany język programowania nazwał "Ada". Co jednak, gdyby maszynę analityczną udało się zbudować jeszcze w XIX wieku i rozpocząć komputerową rewolucję na sto lat przed powstaniem ENIAC-a? Tego już sprawdzić się nie uda, ale działająca w sieci inicjatywa Plan 28 zmierza do zbudowania maszyny analitycznej według oryginalnych planów (póki co mimo wielu prób w przeszłości, nie udało się w pełni odtworzyć urządzenia).

Ósmy krąg piekła dla programistów

Opracowanie informatycznego algorytmu przez Adę Lovelace, nieśmiale otworzyło erę komputerów, które bez wykonywalnego programu są praktycznie bezużytecznym zbiorem połączonych ze sobą elektronicznych elementów. Dlatego programiści i tworzone przez nich algorytmy, tak istotnie wpływają na rozwój internetu czy systemów operacyjnych. Spośród wielu rozpowszechnionych języków takich jak C#, Java Script oraz PHP, szczególne miejsce zajmuje Malbolge (dla znawców twórczości Dante Alighieriego ten termin wydaje się całkiem znajomy - tak bowiem w oryginale "Boskiej Komedii" nazywa się ósmy krąg piekła). Należy on do grupy ezoterycznych języków programowania, które nie są wykorzystywane do tworzenia aplikacji ale są bardzo popularne wśród pasjonatów informatyki i hakerów. Charakteryzują się one również bardzo skomplikowaną strukturą, unikaną przez popularne języki programowania.

Malbolge został opracowany przez Bena Olmsteada w 1998 r., a pierwszy działający na jego zapisach program powstał dopiero w dwa lata po jego powstaniu. Dlaczego? Ponieważ należy do najtrudniejszych języków programowania, którego opanowanie znajduje się poza granicami ludzkiego umysłu - wszystkie aplikacje jakie powstały w oparciu o Malbolge, zostały wygenerowane komputerowo. W tym języku żadna instrukcja nie może być napisana "wprost" ponieważ podlega szeregowi operacji logiczno-arytmetycznych, które są dodatkowo zależne od położenia danej sekwencji znaków ASCII (które określają liczby i litery używane w informatyce) względem pozostałej części skryptu. Póki co, najbardziej skomplikowaną aplikacją wygenerowaną w Malbolge jest implementacja "99 Bottles of Beer" (angielska piosenka, której kolejne zwrotki mówią o coraz mniejszej ilości butelek piwa). Obserwując skrypt tego programu, powinna się pojawić refleksja w jakim kierunku zmierza informatyka i jak wielki wpływ ma na nią wola człowieka.

od 12 lat
Wideo

Bohaterka Senatorium Miłości tańczy 3

Dołącz do nas na Facebooku!

Publikujemy najciekawsze artykuły, wydarzenia i konkursy. Jesteśmy tam gdzie nasi czytelnicy!

Polub nas na Facebooku!

Kontakt z redakcją

Byłeś świadkiem ważnego zdarzenia? Widziałeś coś interesującego? Zrobiłeś ciekawe zdjęcie lub wideo?

Napisz do nas!

Polecane oferty

Materiały promocyjne partnera
Wróć na naszemiasto.pl Nasze Miasto