X
WYKONAŁ MICHAŁ HEYDRYCH

    1. Czym jest informatyka


























    2. Elementy historii informatyki

















































































    3. Pierwsze komputery



































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.

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.

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.

Drogi uzytkowniku!

W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

 Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

 Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.