Podręcznik do Tak-u – Ron White „How Computer Works”



Pobieranie 76,21 Kb.
Data08.01.2018
Rozmiar76,21 Kb.

TAK

Podręcznik do Tak-u – Ron White „How Computer Works”

Informatyka – pojęcie błędnie utożsamiane z komputerem. Komputery są jedynie przydatne w informatyce.
Informatyka jest to nauka o porządkowaniu, przechowywaniu i udostępnianiu informacji, jako nauka została wyodrębniona dość niedawno.
Informacja jest podstawą społeczności, a komputery są tu podstawowymi narzędziami przetwarzania informacji.
Kiedyś komputery służyły jedynie do obliczeń. W dzisiejszych czasach komputery służą raczej do komunikacji i rozpowszechniania informacji.
W informatyce wielką rolę odgrywa programowanie.
Stale rośnie zapotrzebowanie na modele matematyczne, np. informatyk może „organizować” pracę w przedsiębiorstwie – Rynkowe zapotrzebowanie na narzędzia do systematyzowania pracy w firmach.
Nauczenie programowania jest to tylko techniczna umiejętność, którą trzeba posiąść.

Algorytm – Centralne pojęcie informatyczne jest to „przepis” postępowania, który ma doprowadzić do konkretnej czynności. – Przepis na rozwiązanie problemu.


Jednymi z pierwszych algorytmów to działania matematyczne ( + , - , * ,/ ).

Większość algorytmów tego typu przyjmujemy „na wiarę” tutaj, będziemy musieli zrozumieć działanie konkretnych algorytmów.


Szkolny algorytm mnożenia NIE jest najlepszym algorytmem mnożenia, ponieważ istnieją jeszcze takie jak:


  • Algorytm Karatsuby

  • Algorytm Furiera (1965 – uważany za poważny wynalazek informatyczny)

Algorytmy były znane już w Starożytności.


Euklides wydał swoje dzieło zatytułowane „Elementy” – był to podręcznik do geometrii, który używany był aż do czasów II wojny !!!. (Czyli służył około 2000 lat.)
Algorytm Euklidesa ( I ) – 5 w.p.n.e.

(algorytm znajdowania NWD – Największego Wspólnego Dzielnika)


Mamy parę liczb: a , b Є N : a + b > 0

a >= b
NWD (n, 0) = n


NWD (a, b) = NWD (a – b , b)
a = d * a prim

b = d * b prim


a – b = d * a prim – d * b prim = d * ( a prim – b prim )
Czyli odejmując b od a nadal zostaje ten sam NWD
Liczymy NWD (144, 84)
NWD (84, 60) =

= NWD(60, 24) =

= NWD(36, 24) =

= NWD(24, 12) =

= NWD(12, 12) =

= NWD(12, 0)


NWD (144, 84) = 12
Algorytm działa w następujący sposób:
Dane: a, b Є N, a + b > 0 , a >= b

Dopuki: b != 0 wykonuj

Jeśli b >= a to zamień rolami (a, b)

W przeciwnym razie a = a –b


Wypisz (a)
Ten Algorytm jednak nie będzie skuteczny dla (10 30 , 1) (To by trwało od początku wszechświata !!!  )

Algorytm Euklidesa ( I I )


NWD ( a , b ) = NWD (b , a mod b)
Zmniejszona ilość operacji przy użyciu funkcji modulo (Dzielenie modulo – (10 mod 6 = 4) – reszta z dzielenia).
Algorytm ten działa analogicznie z pierwszym ale zamiast odejmować za każdym razem a – b wykonuje działanie a mod b.

16.10.2001



Liczby Fibonacci`ego

Odkryte w 1002 roku przez Włocha Leonardo z Pizy zwany Fibonacci`m


Opublikował pierwszy europejski podręcznik do matematyki po starożytnych Grekach – „Liber Abaci”.Zawarł on w niej doświadczenia Grecko - Arabskie.
Rzymianie nie mieli, żadnych sławnych matematyków – byli doskonałymi architektami, używali matematyki nieśwaidomie. Po upadku cesarstwa nastąpił upadek kulturowy (nie istniał rozwój naukowy).

Wzór Binet’a na n-tą liczbę Fibonacci`ego.

Uważa się, że owy wzór znany był już trochę wcześniej, odkryty przez Eulera.
Fn = 1/sqrt(5) ((1+sqrt(5)/2)n-(1-sqrt(5)/2)n)

23.10.01


●A

Dygresja PCH odnośnie wyznaczanie stycznej do okręgu przez punkt A.

Metoda dopasowania tego ręcznie na oko nie jest „dozwolona”.

Grecy dysponowali zestawem dozwolonych operacji takim jak np. łączenie punktu z punktem itd.

Figury geometryczne powstawały wyłącznie z:


  • Punktów

  • Prostych

  • Okręgów

Zawsze robiąc cokolwiek posługujemy się pewnym zestawem dozwolonych operacji (możliwych operacji) np. przy programowaniu mamy kilka operacji elementarnych takich, jak (if, for, while, oraz różne struktury danych).
Starożytni Grecy walczyli z problemami, których nie mogli rozwiązać

  • Kwadratura koła – (wyprostowanie okręgu na odcinek o długości 1)

  • Problem podwojenia sześcianu – (wyznaczenie długości 3√2 na odcinku o dł 1)

  • Trysekcja kąta (Mając dany kąt podziel go na 3 równe części)

Ponad 2000 lat próbowano rozwiązać te problemy, dopiero w XIX w okazało się, że żaden z tych problemów jest nierozwiązywalny.


Istnieje straszna luka w historii Europy od V – VII wieku., także nie można powiedzieć co dokładnie działo się w tych wiekach z wyjątkiem małoważnych wydarzeń.
Po tym, jak Rzym został splądrowany przez barbarzyńców, dzieła odkrywców (np. Platona) przetrwały tylko dzięki przekładom arabskim.

Harrun Arraszyd (przełom 8, 9 wieku) – inicjator baśni „Tysiąca i jednej nocy” – jako pierwszy w historii uznał naukowców, jako klasę ludzi, w których warto inwestować.

Założył w Bagdadzie dom nauki, do którego sprowadzał naukowców z różnych części świata, żeby odkrywali nowe rzeczy.
Mohammed ibn Musa abu Dżafar al Chwarizmi (Chuwarizmi) –(787? – 847+) –matematyk.

Będąc w Chorezmie poznał matematykę hinduską. Hindusi wymyślili całkiem dobrą matematykę, wprowadzili pomysł pozycyjnego zapisu liczb. On napisał księgę, na której bazują nasze liczby – „Księga o rachowaniu”, zajmował się uprzystępnianiem matematyki hinduskiej.

W tym czasie liczby były traktowane, jako długości odcinków.

Liczby współmierne – liczby, które można zmierzyć tym samym odcinkiem.

Al Chwarizmi podał I metodę rozwiązywania równań kwadratowych (bez liczb ujemnych)

55

25


3 5
9


X2 + 10X – 39 = 0

X2 + 10X = 39


Al. Chwarizmi wydał książkę, która zawierała 9 rozdziałów, w każdym z nich opisany był kolejny przypadek ustawienia liczb równania np. (a, b, c) [a = - n, b = + n]


  • Al Chwarizmi


  • Al Gorizmi

  • Al Goritmi

  • Algorytm

Pochodzenie słowa ALGORYTM – właśnie od Mohammada al Chwarizmi`ego

W 69 roku słowo Komputer pojawiło się w j. Polskim
Al. Chwarizmi układał tabelę sin, cos, kalendarze, działał również w Astronomii.
Kalendarz Juliański przetrwał do XVI wieku, a jego tablice matematyczne były lepsze od Klaudiusza Koloneusza
W każdej cywilizacji jest jakaś przodująca nauka
W stanach ok. 21 % funduszy poświęcane są na doświadczenia związane z MEDYCYNĄ

Informatyka 18 % na drugim miejscu.


Informatyka pomocna jest w medycynie (np. do analizy łańcucha DNA)
W latach 60-tych przodującą nauką była fizyka atomowa

I połowa XIX wieku związana z elektrycznością – elektryczność była już znana z początkiem XVIII wieku kiedy to Galwani odkrył przejawy elektryczności.


W XX wieku wynalazek chemii – tworzywa sztuczne
XIV, XV, XVI wiek – tu przodującą nauką była Astrologia (nie mylić z Astronomią) zajmowała się badaniem związku między obiektami kosmicznymi a naszym życiem (ustawienia planet) np. Mikołaj Kopernik stawiał horoskopy z gwiazd. To było przydatne np. dla władcy, który szykował armię do walki i czekał na „odpowiedni” moment .

Takie stawianie horoskopu zajmowało około 3 miesiące.

I kalkulator 4 działaniowy

Powstał w 1623 roku, jego wynalazcą był Herman Schichard – Niemiec, geodeta, autor I mapy Niemiec. Wynalazek działał na zasadzie mechanicznej (bez prądu) tak, żeby jeden obrót kółka obracał następne o 1/10 obrotu.


1635 roku dżuma pochłonęła wszystkich ( znaczną część Europy (bez Polski)). Schichard z całą rodziną zmarli na dżumę.

Blaise (Błażej) Pascal (1623 - 1662)
Wielki matematyk XVII wieku. Stworzył rachunek prawdopodobieństwa, wynalazca ciśnieniomierza,(jednostka ciśnienia – Pascal), wymyślił słynny trójkąt Pascala, wynalazca taczki.

Przyjacielem Pascala był kawaler De Mere (hazardzista) Stąd właśnie Pascal wymyślił Rachunek Prawdopodobieństwa.


6 – cio pozycyjny kalkulator Pascala (funkcje - +, -, *, /) zrealizowany w wieku 19 lat.
Do wieku 24 lat – dokonał wszystkich swoich odkryć i zrealizował pomysły, potem wstąpił do zakonu.
Słynny teologiczny „Zakład Pascala” – czy jest bóg, czy go nie ma.

Gottfried Wilhelm Leibniz (1646 – 1716)
Znany konstruktor kalkulatorów.
The Leibniz Wheel - Kalkulator w 1673 (+, -, *, /). – Bardzo dobry wynalazek stosowany m.in. w kasach kolejowych.
Twórca analizy matematycznej, pracował jako prawnik.

W XVIII wieku powstał wynalazek, który automatyzował proces tkania tkanin.


Jacques de Vancanson (1709 - 1782)
Wszystkie jego wynalazki były b. Skomplikowane i nikt nie mógł ich zrozumieć – ten typ miał talent do komplikowania. On właśnie wymyślił maszynę do automatycznego tkania.

(Chodziło o opcje automatycznego wyboru czółenka , czy czegoś takiego).


W każdym razie w tym momencie pojawił się pierwszy raz w historii pomysł użycia kart perforowanych jako rodzaj pewnego programu.

Joseph Marie Jacquard (1752 - 1834)
Niezależnie od poprzednika wymyślił tę samą maszynę tkarską, w związku ze zorganizowanym w ów czas konkursem na taką maszynę – Jacquard wygrał I nagrodę zgarniając 10.000 Franków. Skończył ją w roku 1801. Jacquard poza tym był dyrektorem muzeum w którym właśnie stała maszyna tkarska Vancansona.
Wkrótce w 1806 roku jego maszyna weszła do masowej produkcji 10 lat potem istniało już 10.000 takich maszyn.

Abraham Stern (Rabin, naukowiec)
Współzałożyciel Polskiej Akademii Nauk

Nie zależało mu na sławie.

On również skonstruował kalkulator.

Cały XIX wiek to jedno nazwisko –



Charles Babbage (1792 - 1871)
Dostał katedrę matematyki w Cambridge w wieku 26 lat.

On chciał zbudować komputer.


Maszyna różnicowa - Jego pierwszy pomysł– częściowo skończona w 1832 roku.

Wykonana z 2000 ręcznie wykonanych części. To, co zostało skończone działa, ale całą maszyna nigdy nie została skończona. Babbage dostał 20.000 funtów na realizacje projektu.

Ta maszyna miała rozwiązywać równania różnicowe.
Maszyna analityczna – Babbage pracował nad nią równolegle (ponad 40 lat)
A w niej miała być pamięć na 60000 liczb, procesor, który komunikował się z pamięcią i wszystkie części, jak z Pc-ta!!!


Tym czasem w Ameryce


1880 fala masowej imigracji nie było jak przetworzyć wszystkich danych.

Urządzono konkurs na to, jak w najlepszym czasie przetworzyć te dane (chodzi o dane personalne mieszkańców – imię, nazwisko, rasa, itd)
Konkurs wygrał
Herman Holerith – metoda kart perforowanych.

Analizator sumował dziurki i wyrzucał rezultat na zegarek.



100

50
1924 Holerith założył firmę IBM

O maszynach, które usprawniały liczenie.
Herman Holerith – pewne operacje logiczne można wykonywać za pomocą maszyny, czyli pewne rzeczy można zautomatyzować.
W dzisiejszych czasach podstawowe użycie komputera to komunikacja
Babbage nie zrobił swojej maszyny do końca i to było ostrzeżenie dla tych, którzy konstruowali maszyny liczące.
Dopiero w latach 30 XX wieku kilku matematyków zajęło się teorią informatyki (Zanim powstały pierwsze komputery!!!)

Zastanawiali się czy możliwości komputerów są ograniczone.


Istnieją takie funkcje, których nie da się obliczyć(nie ma dla nich żadnego algorytmu), nawet w liczbach naturalnych.
Jakie funkcje są nieobliczalne – okazało się, że większość, więc skupiono się na funkcjach naturalnych.


Alan Turing

Zdefiniował, co to znaczy obliczenie funkcji. On zdefiniował komputer. Przyjął, że komputer może wykonywać takie działania jak człowiek.


Doszedł, do niezwykle prostego modelu – zwanego potem „Maszyną Turinga”
To, czego nie da się policzyć na maszynie Turinga – nie da się policzyć w ogóle!!
Maszyna Turinga ma nieskończoną pamięć.












#

0

1

0

0

1

0

1

1







1







0

1

0

0

1

1

1

0

1

#









taśma pamięci okienko Znak końca danych


Jedyne operacje, jakie może wykonywać maszyna Turinga to:

  • Read(x) – czyta bit, który aktualnie znajduje się w okienku

  • Write(x) – zapisuje w okienku bit x

  • Left – przesunięcie okienka w lewo o jeden bit

  • Right – przesunięcie okienka w prawo o jeden bit

  • Stop – Zatrzymanie

Typ danych jest ograniczony do jednobitowych



Przykład

Program, który mnoży liczbę przez 2 na maszynie Turinga




  1. Znajduje # po lewej i po prawej stronie

  2. # po prawej stronie zamienia na 0

  3. # przesuwa o jeden bit w prawo.

Turing pomyślał o tym jak kodować programy za pomocą 0 i 1


Istnieje taka maszyna Turninga, że sama jest też zakodowana – UNIWERSALNA

Tu omawialiśmy problem „stopu” – Nie ma takiego stwierdzenia, że program się zatrzyma albo zapętli.


Język PL1 „łatwy dla programisty” – wszystko robi sam.
Emil Post – był Polakiem, mieszkał w USA.
Maszyna turinga jest czysto – wirtualna – nigdy jej nie zbudowano!!!!!!!.

W latach 30-tych na MIT powstał Analizator równań różniczkowych

-była to pierwsza maszyna z pamięcią nietrwałą w technologii elektronicznej.

Wtedy powstała I maszyna szachowa, w której program za pomocą Króla i wierzy zamatowywał.




Konrad Zuse

Zbudował Z1 a potem Z2 coś co uważa się za pierwszy komputer. – Zbudował go u siebie w garażu i gdyby oddał go Hitlerowcom to kto wie jakie losy czekały by Europę...


Po wojnie Zuse współpracował z firmą Siemens.
Niemcy przed wojną wymyślili maszynę kryptograficzną (szyfrującą) – Enigma

Polacy złamali kod Enigmy m.in.– prof.Rejewski – jeden z największych geniuszy matematycznych.


Anglicy zrobili maszynę Colossus , projekt prowadził Alan Turing , bazowali na sposobie szyfrowania złamanym przez Polaków – maszyna deszyfrująca. O Polakach jak zwykle w historii zapomniano i sukces w całości przypadł Anglikom.
IBM zrobiła maszynę MARK-1 (w systemie 10-tkowym) przez Howarda Aikena i Edwarda Mauchly`ego. – 5 dodawań na sekundę, 1 mnożenie na sekundę – działał do początku lat 50., wazył 30 ton zawierał18000 lamp elektronowych
2 lata później powstał ENIAC przez Eckerta i Mauchly`ego – I komputer z prawdziwego zdarzenia, działał już w systemie dwójkowym. Jako nowość można uznać fakt, że program był wczytywany do pamięci komputera.


John von Neuman




  • Węgier z pochodzenia potem w Usa – jeden z największych matematyków XX wieku – geniusz. Założyciel teorii gier – to był ten typ, który rozwiązał 4 otwarte problemy topologiczne, piąty w połowie jako praca domowa z wykładu.

  • Wspierał budowę Eniaca – Cykl von Neumana – cykl procesora.

W firmie IBM zastanawiano się co zrobić aby móc sprzedawać komputery „dla każdego” nie tylko dla bogatego państwa. Postanowili więc zmniejszyć maszynę i zmniejszyli z 300 m2 do 20 m2 . Cały czas jednak pozostawał problem odpowiedniego oprogramowania.
John Backus
Jako pierwszy zaczął myśleć o ułatwianiu programowania, bo programowało się w języku wewnętrznym maszyny 0, 1. Trudno było coś tam poprawić, np. w środku kodu.
I pomysł – sumowanie pisało się słownie sum , a on rozwijał to w ciąg 0 i 1. Tego samego pomysłu użyto w adresowaniu pamięci.(zamiast 0 i 1).
Jeśli trzeba było coś edytować np. tab[10] – tab[12] – wszystkie adresy przesuwają się o 2 w dół, a po usprawnieniu wystarczyło pisać tylko adres symboliczny.
Backus w 1954 roku wpadł na pomysł – rewolucja – konstrukcja, która umożliwiłaby pisanie normalnych symboli – program, który tłumaczyłby tekst na 0 i 1.

Poprosił o 7 – osobową ekipę i komputer na 1 rok i powiedział, że zrobi taki program.

Napotkał się na wiele słów wątpliwości ze strony profesorów, i dyspozytorów komputera – nie wiedziano co Backus chce zrobić, żeby jego program analizował i optymalizował formuły.
Po roku udało mu się nazwał swój język – FORTRAN (Formula Translator) – tłumacz formuł.

Pojawiły się operacje if, for, goto, procedury, podprocedury.


Fortran powstał w 11 m-cy, jego opis zawierał 100 stron.

BNF – Backus normal form – stwierdzenie, co może być wyrażeniem arytmetycznym, a co nie


E -> stała | zmienna | -E | +E | E+E | E – E | E * E | E / E | (E) |
(x - y) * (2 + z)

E * E


(E) * (E)

(E - E)*(E + E)


To było drzewo wywodu tego założenia.

  • to definiuje wyrażenie matematyczne

Potem powstało ok. 100 komputerów IBM, do każdego był już dołączony Frotran

To wszystko do roku 1955.

Języki imperatywne – my rozkazujemy, a komputer robi.


Zaczęto myśleć nad podobnymi programami(językami)
Kod w fortranie był mało czytelny dla programisty i pod koniec lat 50 pracowano nad nowym językiem w składzie :

Europejczycy

Holender E.Dijkstra,

P.Naur,


P.Brinh,

O.Dahl


Brian Maysh

Wijngarden

John McCathy

Nickolaus Wirth


O.Dahl – wymyślił klasy.
Pracowali nad językiem, w którym byłoby widać istotę algorytmu.
I w 60 roku powstał *******ALGOL 60********
Wszystkie następne języki są w zasadzie Algolo-podobne
Algol – dużo prostrzy od Fortranu, wygląd programu powinien być przejżysty!
x = x + 1 deklaracja zmiennej x – zrobiono 2 godzinną konferencję na której ustalono, że lepiej będzie x : = x + 1
W algolu były tylko 2 typy zmiennych logiczne i liczbowe
Język C – idiotyczna składnia, w Fortranie były liczby zespolone
Składnia y : = if x < 0 then –x else x; - typowa dla Algolu.
E.Dijkstra – wprowadził mechanizmy rekurencji do Algolu.

Składnie Algolu można było opisać na kilku sronach, semantykę na 20 dalszych, czyli powstał raport, który opisywał Algol od A – Z w niespełłna 30 stronach.

Skrót BNF może być również interpretowany jako „Backus Naur Form
Jednak twórcy Algolu zrobili błąd marketingowy – nie ma instrukcji input – output

GIR4 – komputer - 48 bitów


Polska była b.zaawansowana pod względem informatycznym
XYZ – Polski komputer

1962 roku, kiedy do Polski przyjechali ruscy informatycy z Błuszkowem na czele, wkurzyli się, bo ten komp rozwiązał równani, które znał Błuszkow, więc zabronili Polakom dalszych działań w tym kierunku.


Potem powstał Algol 68 – za trudny!!! – nie powstał nigdy do niego żaden kompilator.
Komputer CDC 6000 – wielkość sali wykładowej, w technologii tranzystorowej, miał 150000 słów 60 bitowych pamięć dyskowa 3 mb

N.Wirth napisał kompilator Pascala na maszynę wirtualną z P-Codem (pascala)


Wirtualna maszyna wspólna dla wszystkich platform – zasługa Wirtha.
Firma Apple zrobiła sukces komercyjny – 2 typów zmontowało go w GARAŻU (mikrokomputer)
Ważny język C – powstaje na przełomie lat 60/70

Równolegle z systemem Unix – w latach 70 nowoczesny system, twórcy Unixa wiedzieli, że jest trudno napisać system operacyjny.


Obrzydliwa składnia c – została użyta do Javy i do C++






©operacji.org 2017
wyślij wiadomość

    Strona główna