O informatyce

Co wiemy o informatyce?

Informatyka jest często kojarzona z komputerami, programowaniem i algorytmami, a w ostatnich latach również z całą sferą działalności związanej z mikrokomputerami, zwanymi także komputerami osobistymi.

Jako najbardziej zwięzłe określenie tego, czym jest informatyka, podaje się, iż jest to dziedzina wiedzy (ang. Computer Science) i działalności zajmująca się gromadzeniem, przetwarzaniem i wykorzystywaniem informacji (czyli różnego rodzaju danych o otaczającej nas rzeczywistości), a ta obróbka informacji odbywa się za pomocą komputerów. Chociaż główny nacisk w tej definicji jest położony na informację i na różne jej aspekty, to jednak wprost lub pośrednio możemy odnaleźć w niej także wymienione na początku pojęcia: komputery – gdyż są to urządzenia do obróbki informacji, programowanie – gdyż jest narzędziem umożliwiającym i usprawniającym komunikowanie się użytkownika z komputerem, algorytmy – gdyż są tymi przepisami, według których przekształcamy informacje, by osiągnąć zamierzony cel. Każde z wymienionych pojęć może z kolei posłużyć do podania innej definicji informatyki.

Za twórcę pierwszej w historii mechanicznej maszyny do liczenia jest uznawany Wilhelm Schickard (1592-1635), który przez długie lata był zupełnie zapomniany. Schickard opisał projekt swojej czterodziałaniowej maszyny, wykorzystującej udoskonalone pałeczki Nepera w postaci walców, w liście do Keplera, któremu miała ona pomóc w jego astronomicznych (dosłownie i w przenośni) rachunkach. Niestety jedyny zbudowany egzemplarz maszyny spłonął w niewyjaśnionych okolicznościach, a dzisiejsze jej repliki zostały odtworzone dopiero niedawno na podstawie opisu z listu do Keplera.

W XVII wieku żyli i tworzyli wielcy matematycy Gottfried Wilhelm Leibniz (1646-1716) i Blaise Pascal (1623-1662). Leibniz jest uznawany za jednego z twórców rachunku różniczkowego i całkowego, a osiągnięcia Pascala można znaleźć w bardzo wielu działach nauk ścisłych. Dobrze jest znany trójkąt Pascala, który tworzą współczynniki w dwumianie Newtona dla kolejnych wykładników potęg. Zainteresowania teoretyczne nie przeszkadzały tym światłym umysłom zajmować się także praktycznymi obliczeniami i dzisiaj obaj są znani również ze zbudowanych przez siebie maszyn liczących. Pascal zainteresował się zbudowaniem maszyny liczącej z myślą o dopomożeniu swojemu ojcu, który był poborcą podatkowym. Wyprodukowano około 50 egzemplarzy Pascaliny – maszyny według pomysłu Pascala. Kilka egzemplarzy istnieje w muzeach do dzisiaj; część z nich była przeznaczona do obliczeń w różnych systemach monetarnych, a część – dla różnych miar odległości i powierzchni (z przeznaczeniem dla geodetów). Pascal, który zbudował maszynę wykonującą tylko dwa działania (dodawanie i odejmowanie) przez ponad trzysta lat uchodził niesłusznie za wynalazcę pierwszej mechanicznej maszyny do liczenia. Schickard i Pascal wprowadzili w swoich maszynach mechanizm do przenoszenia cyfr przy dodawaniu i odejmowaniu. Obie maszyny miały także pewne możliwości zapamiętywania niektórych wyników pośrednich. Leibniz odkrył na nowo pochodzący ze starożytnych Chin system dwójkowy (zwany także binarnym) do zapisu liczb. Przypisuje się jemu także zbudowanie pierwszej mechanicznej maszyny mnożącej. Chociaż w tym czasie istniała już Pascalina i Leibniz miał możność zapoznania się z nią w Paryżu, projekt swojej „żywej ławy do liczenia” opisał przed pierwszą wizytą w Paryżu. W maszynie tej wprowadził wiele części, które zostały użyte w późniejszych maszynach biurowych. Leibniz wiązał z systemem binarnym także swoje idee filozoficzne. Wierzył bowiem, że język matematyki, za pomocą skończonej liczby symboli i pojęć, może wyrazić wszystkie możliwe twierdzenia (lub ogólniej, słuszne sądy). Dopiero Kurt Gödel wykazał w latach trzydziestych naszego wieku, że jest to niewykonalne. Maszyny Schickarda, Pascala i Leibniza wymagały od użytkownika manualnej pomocy w wielu czynnościach związanych z kolejnymi krokami obliczeń. Za pomocą tych maszyn nie było jeszcze można w pełni automatycznie i w całości wykonać prostego działania na dwóch liczbach. W tym miejscu wypada wspomnieć o udziale naszego rodaka w dziele tworzenia maszyn liczących. Abraham Stern (1769-1842), z zawodu zegarmistrz, wykonał serię maszyn, które poza czterema działaniami podstawowymi, wyciągały także pierwiastki kwadratowe. Jedna z jego maszyn, raz uruchomiona, potrafiła wykonać za pomocą mechanizmu zegarowego wszystkie operacje bez ingerencji człowieka. Maszyny skonstruowane przez Sterna okazały się jednak mało praktyczne ze względu na wyjątkowo delikatną budowę.

Za najwybitniejszego twórcę maszyn liczących, żyjącego przed erą elektroniczną, uważa się Anglika Charlesa Babbage’a. Około 1820 r. spotkał on francuskiego barona de Prony, który dla sporządzenia tablic logarytmicznych i trygonometrycznych utworzył specjalną „manufakturę logarytmów” i wzorując się na ideach szkockiego ekonomisty Adama Smitha zastosował podział pracy. W tym celu wynajął 6 wybitnych matematyków (wśród nich był Legendre) do opracowywania formuł obliczeń, 8 przeszkolonych matematyków do przygotowywania poszczególnych etapów obliczeń i 60 rachmistrzów. Ci ostatni mieli jedynie dodawać i odejmować. Dzięki temu praca, która zajęłaby całe jedno życie, została ukończona w kilka lat. Babbage posunął się dalej i postanowił zbudować maszynę liczącą, która mogłaby wyręczyć człowieka i automatycznie wykonywać powtarzające się działania. Swoją pierwszą maszynę nazwał maszyną różnicową, gdyż wykonywała obliczenia metodą różnicową

Koniec XIX wieku był początkiem rozwoju urządzeń mechanograficznych, których głównym przeznaczeniem było usprawnienie rachunków statystycznych, księgowych i biurowych. Zaczęło się w Stanach Zjednoczonych od Hermana Holleritha, który postanowił zautomatyzować prace statystyczne związane ze spisem ludności przeprowadzanym wtedy w Stanach co dziesięć lat. Hollerith sięgnął po elektryczność, jako źródło impulsów i energii, rozwinął postać karty perforowanej, na której zapisywano dane i zbudował elektryczny czytnik-sorter kart. Olbrzymim sukcesem Holleritha okazał się spis w 1890 roku, którego wyniki zostały całkowicie opracowane za pomocą jego urządzeń na podstawie danych zebranych na jego kartach. W następnych latach Hollerith dostarczał lub wypożyczał swoje urządzenia do przeprowadzenia spisów w wielu krajach, w tym także w Europie, jak również w Rosji. Na przełomie XIX i XX wieku powstało wiele firm, które początkowo oferowały maszyny sterowane kartami perforowanymi i z latami zyskiwały na swojej potędze a wiele z nich przetrwało do dzisiaj, jak na przykład IBM, Bull, Remington-Rand, Burroughs, a także NCR (kasy) i Bell (telefony). Udoskonalona i znormalizowana karta perforowana przez wiele dziesięcioleci była uniwersalnym nośnikiem informacji, a pierwsze maszyny mechaniczne do przetwarzania danych zapoczątkowały stale rosnący popyt na przetwarzanie informacji. Wniosło to także zmiany w stosunkach międzyludzkich, a w szczególności między państwem (posiadaczem maszyn do obróbki informacji) i obywatelem.

Wśród modeli obliczeń powstałych w pierwszej połowie XX w. największą popularność zdobyły maszyny Turinga. W swojej fundamentalnej pracy z 1936 roku Alan Turing bardzo przystępnie opisał tok myślenia prowadzący od obliczeń wykonywanych ręcznie do obliczeń wykonywanych przez bardzo prostą maszynę. Obliczenia ręczne są najczęściej wykonywane na pokratkowanej kartce papieru, której pojedyncze kratki są wypełniane cyframi i symbolami działań. Dysponujemy tylko skończoną liczbą znaków (cyfr, np. 0 raz 1 i symboli działań), które mogą być wpisywane w kratki. To, co robimy w ustalonej chwili, zależy od znaków, które obserwujemy i od działania, jakie podjęliśmy. Możemy przyjąć, że liczba kratek obserwowanych w danej chwili jest ograniczona. Przejrzenie zaś większej ich liczby sprowadza się do wykonania ciągu obserwacji. Możemy także założyć, że liczba wszystkich stanów, w jakich może znaleźć się nasz umysł wykonujący obliczenia, chociaż duża, jest skończona. Turing doszedł do koncepcji swojej maszyny wprowadzając pewne uproszczenia i uściślenia w działaniach na kartce i nad nią. Po pierwsze, zapis obliczeń na kartce papieru (a dokładniej na dwuwymiarowym układzie kratek) można sprowadzić do zapisu na jednowymiarowej pokratkowanej kartce, czyli na taśmie podzielonej na kratki. Wystarczy w tym celu treść obliczeń wypełniających kartkę zapisać wierszami. Traci się przy tym na czytelności, ale zyskuje redukcję wymiaru kartki. Po drugie, umysł wykonujący obliczenia można zastąpić przez obiekt bardziej fizyczny zwany głowicą, która znajduje się nad taśmą, może się poruszać w obie strony taśmy, a w danej chwili widzi jedynie symbol umieszczony w kratce, nad którą zawisła. Działanie głowicy jest określone przez ustalony zbiór instrukcji, zgodnie z którymi może poruszać się w lewo, w prawo lub stać w miejscu, potrafi rozpoznawać symbole i może zmieniać zawartość kratki, nad którą się znajduje. Wykonanie instrukcji przez maszynę Turinga jest działaniem głowicy, uzależnionym od stanu, w jakim się znajduje i co widzi. Obliczenia wykonywane za pomocą maszyny Turinga zależą od początkowego zapisu symboli na taśmie i od przyjętego zestawu dozwolonych instrukcji. Zatem działa ona podobnie jak dzisiejsze komputery – wyniki obliczeń zależą od zapisanych w pamięci komputera danych i od zestawu wykonywanych instrukcji. Zawartość taśmy po zatrzymaniu się maszyny zależy od obu tych czynników. Nieodparcie nasuwa się pytanie o to, co możemy policzyć za pomocą tak prostych maszyn. Okazuje się, że bardzo wiele. Sam Turing sformułował tezę, iż na maszynie tego typu można zrealizować każdy algorytm. Do dzisiaj nie obalono tej tezy. W związku z tym można przyjąć, iż algorytmem jest dowolny opis wykonania obliczeń na maszynie Turinga. Analizując moc swoich maszyn, Turing doszedł jednak do wniosku, że istnieją funkcje, których wartości nie one są w stanie obliczać. Nakreślił w ten sposób granice możliwości obliczeń. Działo się to w latach, gdy w matematyce, inny geniusz XX wieku, Kurt Gödel nakreślił granice możliwości dowodu matematycznego. Wykazał on bowiem, że nie z każdego skończonego układu aksjomatów można wyprowadzić wszystkie zgodne z nimi (czyli prawdziwe) fakty. W latach II wojny światowej Turing został włączony do grupy specjalistów zajmujących się w Wielkiej Brytanii deszyfracją kodów Enigmy – maszyny, którą Niemcy używali do kodowania meldunków i rozkazów rozsyłanych swoim jednostkom na wszystkich frontach. W 1941 roku działalność tej grupy przyczyniła się do zredukowania brytyjskich strat na morzach o 50%. Brytyjscy specjaliści korzystali z materiałów (wśród których był egzemplarz Enigmy oraz maszyna deszyfrująca zwana bombą), przekazanych im w 1939 roku przez grupę Polaków kierowaną przez Mariana Rejewskiego, zajmujących się konstruowaniem maszyny deszyfrującej. Chociaż Brytyjczycy udoskonalili maszynę deszyfrującą otrzymaną od Polaków, pozostawała ona nadal maszyną mechaniczną i jej działanie nie nadążało za ciągle udoskonalanymi i zmienianymi przez Niemców egzemplarzami Enigmy. Ocenia się, że w szczytowym okresie II wojny światowej Niemcy używali ponad 70 tysięcy maszyn szyfrujących Enigma. Prace nad maszyną deszyfrującą Enigmę przyczyniły się do powstania pod koniec wojny w Wielkiej Brytanii kalkulatorów elektronicznych. Powstało kilka wersji maszyny o nazwie Coloss, których głównym konstruktorem był T.H. Fowers. Były to już maszyny elektroniczne, w których zastosowano arytmetykę binarną, sprawdzane były warunki logiczne (a więc można było projektować obliczenia z rozgałęzieniami), zawierały rejestry, mogły wykonywać programy (poprzez uruchamianie tablic rozdzielczych) i wyprowadzać wyniki na elektryczną maszynę do pisania.

Pierwsze komputery zbudowano dopiero w XX stuleciu, chociaż pomysły, jakie w nich zrealizowano, pojawiły się przynajmniej sto lat wcześniej, już za czasów Babbage’a. Zastosowane w komputerach środki techniczne pojawiły się bowiem dopiero w latach międzywojennych. Za największego inspiratora powstania komputera w jego obecnej postaci uważa się Johna von Neumanna. Ale zanim powiemy o jego dziele, oddajmy właściwe miejsce twórcom rzeczywiście najwcześniejszych konstrukcji, pretendujących do miana komputera. Pojawienie się większości z nich przyspieszyła II wojna światowa. W 1941 roku Konrad Zuse ukończył w Niemczech prace nad maszyną Z3, która wykonywała obliczenia na liczbach binarnych zapisanych w reprezentacji, nazywanej dzisiaj zmiennopozycyjną, sterowane programem zewnętrznym podawanym za pomocą perforowanej taśmy filmowej. Maszyna Z3 została całkowicie zniszczona w czasie bombardowania w 1945 roku. Następny model maszyny Zusego, Z4 przetrwał i działał do końca lat pięćdziesiątych. Maszyny Zusego były kalkulatorami przekaźnikowymi. W tym czasie znane już były prace Claude’a Shannona dotyczące realizacji działań binarnych (logicznych) za pomocą układów elektronicznych zgodnie z regułami algebry Boole’a. W roku 1942 zespół specjalistów pod kierunkiem J.W. Mauchly’ego i J.P. Eckerta zaprojektował i zbudował maszynę ENIAC (ang. Electronic Numerical Integrator And Computer). Pierwsze obliczenia maszyna ta wykonała w listopadzie 1945 roku. Maszyna ENIAC jest uznawana powszechnie za pierwszy kalkulator elektroniczny, chociaż w 1976 roku okazało się, że wcześniej zaczęły pracować w Wielkiej Brytanii maszyny Coloss I i II. Maszyna ENIAC była monstrualną konstrukcją złożoną z 50 szaf o wysokości 3 metrów zawierających około 20 tysięcy lamp. Słabością tej maszyny było: użycie zwykłego systemu dziesiętnego do pamiętania liczb, brak rozdziału między funkcjami liczenia i pamiętania oraz bardzo uciążliwy sposób zewnętrznego programowania. Wady te zostały usunięte dopiero w projekcie EDVAC.

Na podstawie tekstów prof. Macieja M. Sysło.