Strona główna

Czym jest informatyka. Elementy historii


Pobieranie 50.52 Kb.
Data18.06.2016
Rozmiar50.52 Kb.
Czym jest informatyka.
Elementy historii

Czym jest informatyka

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. i tak, wiele osób za najważniejsze obiekty zainteresowań w informatyce uważa komputery wraz z całym spektrum zagadnień związanych z ich projektowaniem, konstruowaniem i wykorzystywaniem. Jest to zbyt jednostronne, techniczne spojrzenie na informatykę. Najczęściej informatyka bywa utożsamiana z programowaniem komputerów, a pośrednio także z językami programowania. Ta książka stara się przekonać, że pogląd ten jest wyraźnym zawężeniem zakresu dziedziny. Nam najbardziej odpowiada następujące określenie informatyki:

informatyka jest dziedziną wiedzy i działalności zajmującą się algorytmami

Wyróżniliśmy tę ostatnią definicję, gdyż naszym zdaniem najtrafniej oddaje przewodnią myśl większości rozważań na tematy dotyczące informatyki. w tym określeniu można odnaleźć także pozostałe pojęcia stosowane do definiowania informatyki: komputery – jako urządzenia, za pomocą których są wykonywane algorytmy, informację – jako materiał, który przetwarzają i produkują algorytmy i programowanie – jako metodę zapisywania algorytmów. Chociaż w tej definicji główny nacisk jest położony tym razem na algorytmy, pozostałe jej aspekty są nie mniej ważne do właściwego traktowania zarówno algorytmów, jak i całej dziedziny.

Znaczenie pojęć: algorytm, program, komputer, informacja omawiamy w następnym punkcie na tle ich historycznego rozwoju.

Elementy historii informatyki

Zalew komputerów, który obserwujemy wokół nas jest jedną z oznak rewolucji mikrokomputerowej. Komputery nie pojawiły się jednak nagle i niespodziewanie, a pojęcia i wiedza składające się na informatykę były gromadzone przez długie lata wraz z rozwojem innych nauk i działalności człowieka.

Chcemy tutaj przybliżyć tylko te wydarzenia i osoby z historii informatyki, które według nas miały największy wpływ na tempo rozwoju i obecny jej stan. Naszą uwagę skupimy przede wszystkim na tych faktach, które odegrały największą rolę w rozwoju podstawowych pojęć: algorytm, komputer i programowanie. Na zakończenie odniesiemy się także krótko do obecnej, stale rosnącej roli informatyki w społeczeństwie.

Pierwsze ślady informatyki można odnaleźć w historii matematyki i to dość odległej. Zastanówmy się najpierw, co składa się na matematykę. Wystarczy, jeśli rozróżnimy, bez specjalnego zagłębiania się w jej istotę, dwa rodzaje działalności matematycznej: dowodzenie i obliczanie . Matematyczny dowód jest uzasadnieniem słuszności faktu sformułowanego najczęściej w ogólnej, abstrakcyjnej postaci. Na przykład w twierdzeniu Pitagorasa jest mowa o zależności, jaką spełniają długości boków w dowolnym trójkącie prostokątnym, czyli dotyczy ono wszystkich takich trójkątów. Za obliczenia zaś przyjęło się uznawać wykonanie na liczbach zaznaczonych działań. Dowody są wytworami umysłu noszącymi duży ładunek oryginalności i niepowtarzalności. Obliczenia natomiast w swojej tradycyjnej postaci (tj. zapisywane ołówkiem na kartce papieru) są ciągiem elementarnych działań, których różnorodność jest ograniczona do kilku podstawowych operacji arytmetycznych. Bardzo trudno jest znaleźć w otaczającym nas świecie odpowiedniki większości pojęć i pomysłów występujących w dowodach, liczby zaś (zwłaszcza naturalne) dają się łatwo przedstawiać za pomocą najróżniejszych obiektów, rzeczy i wielkości. Dlatego od najdawniejszych czasów próbowano pomagać sobie w liczeniu, np. kamieniami.

Od Starożytności do Średniowiecza

W wykopaliskach między Mezopotamią i Indiami odnaleziono ślady stosowanych już w X wieku p.n.e. systematycznych metod znajdowania wyniku najprostszych operacji za pomocą specjalnie przygotowanych i poukładanych kamieni. Początkowo kamienie układano w rzędach na piasku tworząc w ten sposób plansze obliczeniowe, które nazywamy abakami (lub abakusami). Później zaczęto nawlekać kamienie na pręty, tworząc liczydła, czyli kompletne i przenośne przyrządy do obliczeń. w obu przypadkach, abakusa i liczydła, stan obliczeń określało rozmieszczenie elementów ruchomych (czyli kamieni) na piasku lub na prętach. Liczydła przeżywały swój renesans w wiekach średnich. Wtedy na przykład ukształtował się japoński soroban w swej obecnej postaci.

Rysunek 1.1 Japoński soroban

Na rysunku 1.1 jest pokazany współczesny soroban z odłożoną w czterech rzędach liczbą 1999. Cztery guziki na dole w każdym rzędzie służą do odkładania kolejnych jedności 1, 2, 3 i 4 przez przesuwanie ich w kierunku środka. Przejście od 4 do 5 polega na cofnięciu czterech jedności na pozycje początkowe i przesunięcie górnego guzika do środka. Zachęcamy do opracowania metody dodawania dwóch liczb za pomocą tego liczydła.

Soroban jest jeszcze dzisiaj dość powszechnie stosowanym liczydłem w Japonii. Jego obsługi, w tym wykonywania na nim czterech podstawowych działań arytmetycznych, nadal uczą się japońskie dzieci w szkole podstawowej. Nierzadko można także spotkać urzędników (np. na poczcie) lub sprzedawców w małych sklepikach, którzy obliczają należności korzystając z pomocy sorobanu. Soroban – jak każde liczydło – ma wady, które zostały naprawione częściowo w kalkulatorze, a ostatecznie dopiero w komputerach. Służy on bowiem tylko do odnotowania bieżących wyników obliczeń, gdyż nie ma w nim miejsca ani na pamiętanie wyników pośrednich, ani na pamiętanie kolejno wykonywanych działań.

Cofnijmy się jeszcze do poprzedniej ery. w dalszej części książki omawiamy metodę wyznaczania największego wspólnego dzielnika dwóch liczb. Metodę tę podał Euklides, żyjący w latach 400–300 p.n.e., w swoim fundamentalnym dla matematyki (a zwłaszcza dla geometrii) dziele Elementy. Jego metoda jest dzisiaj powszechnie nazywana algorytmem Euklidesa. Staraliśmy się unikać na początku tego akapitu słowa algorytm, gdyż w czasach, gdy żył i działał Euklides, i przez wiele wieków po nim, nie używano jeszcze tej nazwy.

Słowo algorytm pochodzi od brzmienia fragmentu nazwiska arabskiego matematyka, żyjącego na przełomie VIII i IX wieku. Muhammad ibn Musa al-Chorezmi, bo o nim tutaj mowa, jest uznawany za prekursora obliczeniowych metod w matematyce. Napisał na ten temat kilka dzieł, a z fragmentu tytułu jednej z jego ksiąg pochodzi inne jeszcze słowo – algebra. Upowszechnił także system dziesiętny i stosowanie zera jako pojęcia i symbolu, z którym wielu żyjących przed nim nie umiało sobie poradzić. Nie wyobrażano sobie bowiem by coś (czyli jakikolwiek znak, np. 0) mogło oznaczać nic.

A co to jest algorytm? Nie podamy wyczerpującej odpowiedzi na to pytanie. Nie udało się bowiem do dzisiaj ująć w jednolite ramy jednego pojęcia wszystkich tych procesów, które są opatrywane nazwą algorytm. w dalszych rozważaniach będziemy przyjmować, że algorytm jest przepisem rozwiązywania postawionego zadania, będącym dokładnie określonym układem elementarnych instrukcji wraz z porządkiem ich wykonywania. Każda instrukcja ma precyzyjnie określoną interpretację za pomocą podstawowych operacji arytmetycznych i logicznych, a jej wykonanie jest skończone i ma jednoznacznie określony efekt końcowy . Jako elementy komunikacji ze światem w algorytmie można wyróżnić: dane, na których są wykonywane obliczenia i wyniki, które są oczekiwanym rezultatem działań.

Algorytm, jako opis sposobu rozwiązywania zadania jest często zapisywany w języku programowania by umożliwić jego wykonanie za pomocą komputera. Dzięki precyzji określenia danych i wyników (w algorytmie i w odpowiadającym mu programie), algorytm może być stosowany nawet w sytuacjach, gdy osobie zainteresowanej rozwiązaniem nie jest znane dokładne jego działanie – wystarczy znajomość postaci danych i interpretacji wyników.

Wiek XVII i XVIII

Na początku XVII wieku John Neper opublikował najpierw swoje dzieło o logarytmach, a następnie przedstawił system wspomagający wykonywanie mnożenia, zwany pałeczkami Nepera. Genialność tego systemu polegała na sprowadzeniu mnożenia do serii dodawań. Pomysł Nepera wykorzystało wielu konstruktorów urządzeń liczących, jemu współczesnych i żyjących po nim.

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ę.

Charles Babbage (1791-1871)

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ą.

Nie będziemy dokładnie opisywać tutaj metody różnicowej. Zilustrujemy ją tylko na przykładzie obliczania wartości funkcji y = x2 dla kolejnych argumentów x = 1, 2, 3, ... Zauważmy następującą prawidłowość:

kwadrat kolejnej liczby naturalnej jest sumą kwadratu poprzedniej liczby naturalnej i kolejnej nieparzystej liczby naturalnej

Korzystając z tej zależności otrzymujemy schemat obliczeń przedstawiony na rys. 1.2 (strzałki oznaczają kolejność obliczeń i przekazywania wyznaczanych wartości).

Zatem do policzenia kwadratów kolejnych liczb naturalnych wystarczy:

Ustawić 0, 1 i 2 jako początkowe wartości.

Dla policzenia kwadratu kolejnej liczby naturalnej, wykonać dwa dodawania:

otrzymać kolejną liczbę nieparzystą przez zwiększenie o dwa poprzedniej liczby nieparzystej (jest to wykonywane w trzeciej i czwartej kolumnie na rys. 1.2),

otrzymaną liczbę nieparzystą dodać do kwadratu poprzedniej liczby naturalnej (dwie pierwsze kolumny na rys. 1.2).

Rysunek 1.2. Obliczanie kwadratów kolejnych liczb naturalnych

Podaliśmy bardzo prosty przykład obliczeń wykonanych metodą różnicową. Dla uzasadnienia znaczenia tej metody w automatycznych obliczeniach dodajmy, że w podobny sposób można tworzyć tablice wartości dla większości funkcji elementarnych spotykanych w obliczeniach. w tym celu należy skorzystać z wielomianu, który dobrze przybliża tablicowaną funkcję oraz obliczyć bezpośrednio kilka jej pierwszych wartości. Wszystkie następne działania są już tylko dodawaniami pewnych liczb tworzonych także tylko za pomocą dodawań. i właśnie ten ostatni etap obliczeń miała automatyzować maszyna różnicowa.

Babbage konstruował swoją pierwszą maszynę przez ponad 10 lat. Trapiony jednak wieloma kłopotami rodzinnymi i finansowymi oraz nie mogąc do końca porozumieć się ze swoim głównym wykonawcą-konstruktorem Clementem, zaprzestał dalszych prac nad maszyną różnicową w 1842 roku. Zmontowaną część maszyny (podobno nadal sprawną!) można oglądać w Muzeum Nauk w Londynie. Należy dodać, że w odróżnieniu od maszyn Leibniza i Pascala, po ręcznym ustawieniu początkowego stanu, dalsze działania maszyny różnicowej nie wymagają już żadnej ingerencji użytkownika poza kręceniem korbą. Prace Babbage'a zainspirowały wielu jemu współczesnych, którzy, jak na przykład Szwedzi George i Edward Scheutzowie, często z większym powodzeniem ukończyli swoje, może mniej ambitne ale nadal praktyczne konstrukcje maszyn różnicowych.

Ale Babbage nie poprzestał na próbie skonstruowania maszyny różnicowej. Marzył o maszynie, która mogłaby rozwiązywać bardziej złożone zadania. Tak narodził się jeszcze w trakcie prac nad maszyną różnicową pomysł zbudowania maszyny analitycznej, którym Babbage żył do śmierci. Było to przedsięwzięcie czysto abstrakcyjne – przewidywane przeszkody techniczne i trudności finansowe nie pozwoliły nawet na rozpoczęcie prac konstrukcyjnych . w projekcie Babbage zawarł jednak wiele pomysłów zrealizowanych dopiero we współczesnych komputerach. Między innymi rozdzielił pamięć (zwaną magazynem) od jednostki liczącej (młyna), czyli miejsce przechowywania danych od jednostki wykonującej na nich działania. Obie te części maszyny analitycznej miały być sterowane za pomocą dodatkowego urządzenia kontrolnego, które otrzymywało polecenia na kartach perforowanych, udoskonalonych i rozpowszechnionych przez Jacquarda do programowania maszyn tkackich. Można więc uznać maszynę analityczną Babbege'a za pierwszy pomysł kalkulatora sterowanego programem zewnętrznym.

Opis działania maszyny analitycznej trafił w ręce Ady (jej pełne nazwisko: Ada Augusta hrabina Lovelace), córki Byrona, znanej w owych czasach z błyskotliwego umysłu. Urzeczona doskonałością projektu uważała, że „maszyna analityczna tkać będzie wzory algebraiczne, tak jak krosna Jacquarda tkają liście i kwiaty”. Nie czekając na skonstruowanie maszyny (czego jak wiemy i tak by się nie doczekała), Ada zajęła się sporządzaniem opisów jej używania do rozwiązywania konkretnych zadań obliczeniowych. Opisy te nazwalibyśmy dzisiaj programami, dlatego uważa się ją za pierwszą programistkę komputerów. Dla uczczenia zasług Ady na tym polu nazwano jej imieniem jeden z najbardziej uniwersalnych języków programowania.

Przełom XIX i XX wieku

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.

Początek XX wieku

Od przełomu XIX i XX wieku można zaobserwować wśród matematyków wzrost zainteresowania problemami obliczeniowymi i obliczalnością. Dla przykładu, wielki matematyk niemiecki David Hilbert (1862-1943), wśród wielu problemów najistotniejszych dla rozwoju matematyki w XX wieku, umieścił także pytanie o istnienie uniwersalnej metody znajdowania pierwiastków, będących liczbami całkowitymi, równań o współczynnikach całkowitych.

Zainteresowania te doprowadziły do powstania wielu teorii, których celem było dostarczenie teoretycznych podstaw obliczeń. w teoriach tych można na przykład ściśle określić, co to jest algorytm. Przy badaniu wzajemnych związków między teoretycznymi modelami obliczeń okazało się, że zdecydowana ich większość jest równoważna sobie, obejmuje bowiem te same klasy zadań dających się rozwiązywać za pomocą konstruowanych w tych teoriach algorytmów.

Alan Turing (1912-1954)

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ę. Przytoczymy tutaj ten opis.

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.

Wspomnijmy tutaj jeszcze o dwóch innych dziedzinach działalności Turinga, ściśle związanych z automatyzacją obliczeń i komputerami. 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

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.

John von Neumann (1903-1957)

I tak dotarliśmy do postaci numer jeden w historii informatyki, której informatyka zawdzięcza dzisiaj tak wiele. John von Neumann, z pochodzenia Węgier, był w swoich czasach jednym z najwybitniejszych matematyków. Współpracował m.in. z Hilbertem, a poza matematyką poświęcał swoją uwagę wielu innym dziedzinom nauk przyrodniczych i wniósł duży wkład w ich rozwój. w 1946 roku zainspirował on prace w projekcie EDVAC (ang. Electronic Discrete Variable Automatic Computer), których celem było zbudowanie komputera bez wad poprzednich konstrukcji. Zaproponowano architekturę, zwaną odtąd von neumannowską, według której buduje się komputery do dzisiaj.

W komputerze von Neumanna można wyróżnić przynajmniej następujące elementy: pamięć złożoną z elementów przyjmujących stan 0 lub 1, arytmometr zdolny wykonywać działania arytmetyczne, logiczne i inne, sterowanie, wprowadzanie danych i wyprowadzanie wyników. Program, czyli zbiór instrukcji, według których mają odbywać się obliczenia, jest wpisywany do pamięci. Kolejne rozkazy programu są pobierane przez jednostkę sterującą komputerem w takt centralnego zegara i rozpoznawane zgodnie z mikroprogramem wpisanym w układ elektroniczny. Podkreślmy, że program jest przechowywany w pamięci komputera i jego działanie może zmieniać zawartość dowolnego obszaru pamięci (programy mogą się także same modyfikować). Fizycznie nie ma żadnej różnicy między danymi i programami przechowywanymi w pamięci komputera: są podobnie kodowane jako ciąg zer i jedynek i tak samo zrealizowane technicznie. Można więc powiedzieć, że celem działania komputera von neumannowskiego jest przejście w takt zegara od jednego stanu zawartości pamięci (danego na początku) do innego, zawierającego oczekiwany wynik. Zauważmy podobieństwo tego spojrzenia na komputer von Neumanna do maszyny Turinga. Nie ma w tym nic dziwnego, gdyż von Neumann bardzo dobrze znał osiągnięcia Turinga.

Ostatnie lata.

Większość budowanych dzisiaj komputerów ma nadal architekturę niewiele odbiegającą od zaproponowanej przez von Neumanna. Nie do poznania zmieniło się natomiast wykonanie komputerów dzięki olbrzymiemu postępowi w miniaturyzacji i przyspieszaniu działania podstawowych elementów konstrukcyjnych. Najpierw, u schyłku lat czterdziestych XX w. wynaleziono tranzystor i zastosowano w komputerach. Pod koniec lat siedemdziesiątych rozpoczęła się pogoń za miniaturyzacją elektroniki i jednocześnie za coraz większą szybkością jej działania, możliwą m.in. dzięki wykorzystaniu specjalnych materiałów i zmniejszeniu wielkości elementów oraz odległości między nimi. w pewnym miejscu rozwoju komputerów konieczne było odejście od modelu von neumannowskiego, gdyż stwarzał on zbyt duże ograniczenia dla osiągnięcia coraz większych szybkości. Dzisiaj powszechne stały się komputery o architekturze równoległej, w których nie ma centralnego zegara, a jego rolę przejęła synchronizacja obliczeń gwarantująca, że w każdej chwili żądane wielkości znajdują się w określonym miejscu pamięci.

Jeśli przypomnimy sobie historię z obliczeniami wartości wypełniającymi tablice logarytmiczne, to dziwić może, dlaczego Babbage został zainspirowany do zaprojektowania jedynie maszyny różnicowej i maszyny analitycznej, których celem była automatyzacja obliczeń szeregowych (tj. element po elemencie), a nie równoległych (czyli niezależnie jeden od drugiego), chociaż manufaktura logarytmów barona de Prony była przykładem współbieżnie wykonywanych obliczeń.

Zarzucona w latach siedemdziesiątych XX w. nazwa komputera mózg elektronowy przeżywa dzisiaj swój renesans za sprawą coraz większych technicznych możliwości zrealizowania późniejszych koncepcji von Neumanna. Podstawowe różnice między ludzkim mózgiem a komputerem w dzisiejszej postaci są łatwe do uchwycenia: mózg zawiera 10–100 mld neuronów, a więc tysiące razy więcej niż komputer ma bitów. z drugiej strony komputery działają szybciej niż mózg, tzn. miliony razy szybciej wykonują podstawowe operacje, jak np. mnożenie dwóch liczb. (Zauważmy tutaj pewną uniwersalność komputera, który z taką samą szybkością mnoży dowolne dwie liczby jednocyfrowe i dziesięciocyfrowe z ustalonego zakresu reprezentacji. Przeciętny mózg zaś w najlepszym razie radzi sobie biegle z tabliczką mnożenia liczb jednocyfrowych.) O wiele istotniejszą różnicą między mózgiem a komputerem jest to, że większość komputerów działa szeregowo, czyli wykonuje operacja po operacji, podczas gdy w mózgu bardzo wiele procesów przebiega jednocześnie. Poza tym neurony w mózgu mają znacznie więcej połączeń między sobą (około 10 tysięcy) niż bajty w pamięci komputera. Obliczenia w komputerze widziane jako ciąg działań na bitach – to zmiany stanu elementów elektronicznych odbywające się zgodnie z prawami fizyki. w mózgu natomiast – istotniejsze znaczenie mają procesy chemiczne, nie w pełni dotychczas poznane. Można powiedzieć, że komputer jest systemem luźno ze sobą powiązanych elementów elektronicznych i charakteryzuje się dużą szybkością wykonywania operacji na niewielkich danych. Mózg zaś jest zbiorem dość mocno ze sobą powiązanych i komunikujących się neuronów działających z mniejszą szybkością, za to na olbrzymich ilościach informacji. w ostatnich latach powstały projekty neurokomputerów, w których mają być uwzględnione najlepsze cechy mózgu i komputera, a więc w uproszczeniu – ma to być szybka, elektroniczna realizacja pracy mózgu, czyli olbrzymiej liczby wszechstronnie powiązanych ze sobą elektronicznych neuronów.

Komputery a społeczeństwo

Niemal każda sfera działalności człowieka podlega dzisiaj komputeryzacji. Komputerom przypisuje się nie tylko ewolucyjną, ale i rewolucyjną rolę. Pierwsza rewolucja przemysłowa, związana m.in. z wynalezieniem maszyny parowej i silnika elektrycznego, zwielokrotniła siłę mięśni ludzkich i zwierzęcych zaangażowanych w produkcję. Druga natomiast, związana z użyciem komputerów do przetwarzania informacji, potęguje zdolności umysłowe człowieka do granic obecnie niewyobrażalnych.

Rewolucja informacyjna to początek ery rosnącego wpływu przetwarzania informacji i wiedzy na rozwój społeczeństw i życia codziennego. Postęp i standard życia stają się coraz bardziej zależne od naszej zdolności do efektywnego opracowywania, utrzymywania i wykorzystywania zasobów informacji i wiedzy. Co więcej, ich znaczenie staje się większe niż rola zasobów naturalnych. Komputery już dzisiaj umożliwiają powstawanie klasy posiadaczy informacji. Byli i są wśród nas właściciele środków produkcji, kapitału i władzy a nadchodzi era posiadaczy informacji. Jest wiele słuszności w powiedzeniu, że kto ma informacje, ten ma władzę.

Informatyka jest obszerną i podstawową dziedziną o zasadniczym znaczeniu dla społeczeństwa w dobie rewolucji informacyjnej. Jej głównym celem jest badanie praw i ich zasięgu, praw rządzących procesami informacyjnymi i ich realizacjami. Dodatkowym celem informatyki jest opracowywanie nowych i skutecznych narzędzi intelektualnych, niezbędnych do rozwiązywania problemów przetwarzania informacji we wszystkich dziedzinach aktywności ludzkiej. Informatyka już teraz ma znaczący wpływ na rozwój innych nauk, na przemysł i nowoczesną technologię, na rolnictwo, ekonomię, kształcenie, a także na poszerzanie granic pojmowania wszechświata.

Literatura (omówienie)

Najpełniejszy opis historii komputerów w języku polskim, od starożytności do końca II wojny światowej, jest zawarty w książce:

Ligonnière R., Prehistoria komputerów, Ossolineum, Wrocław 1992.

Z historią komputerów w zwartej postaci można się zapoznać czytając:

Kaufman H., Dzieje komputerów, PWN, Warszawa 1980.



Wszechstronne omówienie wpływu komputerów, a w ogólności – mikroelektroniki, na stosunki w społeczeństwie przedstawia raport opracowany dla Klubu Rzymskiego:

Mikroelektronika i społeczeństwo. Na dobre czy na złe? Friedricks G., Schaff A. (red.), Książka i Wiedza, Warszawa 1987.


©snauka.pl 2016
wyślij wiadomość