HISTORIA_INFORMATYKI(1).DOC

(100 KB) Pobierz
CZYM JEST INFORMATYKA

10

Elementy historii informatyki

 

 

 

1.       CZYM JEST INFORMATYKA[1]

ELEMENTY HISTORII

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

1.2.     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[2]. 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[3]. 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ą[4].

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:

  1. Ustawić 0, 1 i 2 jako początkowe wartości.
  2. 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[5]. 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.

...

Zgłoś jeśli naruszono regulamin