2
Plan wykładu Wprowadzenie Prehistoria Historia do XX wieku Historia do powstania maszyny ENIAC Historia do Internetu Historia komputerów w Polsce Zakończenie 3
Wprowadzenie Komputer, symbol XX w., wywodzi się mimo wszystko z dalekiej, a mało znanej przeszłości. Od antycznych abaków po pałeczki obliczeniowe, od maszyn Leibniza lub Pascala po mechanizmy Babbage a i Holleritha, od logiki binarnej Yi king po koncepcje Boole a przeplatają się metamorfozy wielkiej chimerycznej idei i natchnione poszukiwania upartych wynalazców. R. Ligonniere, Prehistoria i historia komputerów 4
Prehistoria 5
6
X-II tysiąclecie p.n.e 2700 2300 p.n.e II w. p.n.e I w p.n.e I w. n.e X XII w. XII XVI w. XIII w. Bliski Wschód gliniane calculi Sumerowie - abakus Plutarch abakus pyłowy, chiński abakus suan zi Horacy abakus woskowy (przenośny) Rzymski (kieszonkowy) akakus Abakusy, GERBERT z Aurillac Abacyści Algoryści Chiny liczydła suan pan Rosja sczoty Iran, Afganistan czoreb Armenia, Turcja - kulba Soroban rosyjski Soroban ozdobny Soroban na torbie na zakupy Soroban włoski Soroban dla niewidomych Soroban podwójny 7
Historia do XX wieku 8
B. Pascal Maszyna W. Schickarda (zegar rachunkowy) i maszyna B. Pascala (Pascalina) 9
Nie godzi się wybitnym ludziom trwonić czas na niewolniczą pracę na obliczenia, które z zastosowaniem maszyn mógłby wykonać ktokolwiek G.Leibniz 10
11
12
13
Algebra Boole'a to struktura algebraiczna B:=(B,,,, 0,1), w której, i są działaniami dwuargumentowymi, jest operacją jednoargumentową, a 0 i 1 są wyróżnionymi różnymi elementami zbioru B, spełniająca następujące warunki dla wszystkich a, b, c B: Oznaczenia Istnieją co najmniej trzy różne, szeroko rozpowszechnione tradycje oznaczeń w teorii algebr Boole'a. W definicji sformułowanej powyżej użyto symboli,,, ale w częstym użyciu są również +,, - oraz,, Symbole oznaczające operacje dwuczłonowe algebry Boole'a są prawie zawsze wprowadzane przez wybór jednej z par (+, ),( ) albo (, ). W oznaczeniach operacji jednoargumentowej algebry istnieje mniejsza konsekwencja i można się spotkać zarówno z symbolami +,,~ jak i,, W badaniach teorio-mnogościowych aspektów algebr Boole'a przeważa tradycja używania oznaczeń (+,,-). Ten sam system został też wybrany za wiodący przez redaktorów monografii Handbook of Boolean Algebras. Z kolei symbole, zgodne z oznaczeniami w teorii krat są częściej używane w kontekstach algebraicznych (i teorio-kratowych). Spotykane są też inne kombinacje tychże symboli lub wręcz inne symbole (na przykład & w miejsce, lub a zamiast ~a). W elektronice i informatyce często stosuje się OR, AND oraz NOT w miejsce,, oraz., łączność przemienność absorpcja rozdzielność pochłanianie C.E.Shannon 14
Historia do maszyny ENIAC 15
16
NAGRODA IM.TURINGA 17
Czy maszyna może myśleć? jeśli zdefiniuje się myślenie jako proces swoisty i wyłącznie ludzki jeśli zakłada się, że w samej istocie myślenia jest coś niezgłębionego, tajemniczego, mistycznego jeśli przyjmie się, że tę kwestię należy rozstrzygnąć na drodze eksperymentu i obserwacji, porównując zachowanie się komputera z zachowaniem ludzi, w stosunku do których termin myślenie ma powszechne zastosowanie. 18
Maszyna Turinga składa się z nieskończenie długiej taśmy podzielonej na pola. Taśma może być nieskończona jednostronnie lub obustronnie. Każde pole może znajdować się w jednym z N stanów. Maszyna zawsze jest ustawiona nad jednym z pól i znajduje się w jednym z M stanów. Zależnie od kombinacji stanu maszyny i pola maszyna zapisuje nową wartość w polu, zmienia stan, a następnie może przesunąć się o jedno pole w prawo lub w lewo. Taka operacja nazywana jest rozkazem. Maszyna Turinga jest sterowana listą zawierającą dowolną ilość takich rozkazów. Liczby N i M mogą być dowolne, byle skończone. Czasem dopuszcza się też stan M+1, który oznacza zakończenie pracy maszyny. Lista rozkazów dla maszyny Turinga może być traktowana jako jej program. Maszyna Turinga A posiadająca zdolność symulacji działania dowolnej innej maszyny Turinga B (opisanej jako dane wejściowe dla maszyny A) na dowolnych danych wejściowych dla maszyny B, nazywana jest uniwersalną maszyna Turinga. Praktycznym przybliżeniem realizacji uniwersalnej Maszyny Turinga jest komputer, będący w stanie wykonać dowolny program na dowolnych danych. Należy podkreślić, że komputery nie są uniwersalnymi maszynami Turinga w sensie pierwotnej definicji, ponieważ ilość danych, które mogą przechowywać i przetwarzać jest skończona, tak więc dla każdego komputera istnieje tylko skończona ilość programów, które może wykonać. Mimo że ilość ta jest niewyobrażalnie wielka i w praktyce często wystarczająca, to bez względu na rozmiar pamięci, zawsze będzie istnieć program, którego maszyna nie będzie w stanie wykonać, ponieważ jego kod (opis) po prostu nie mieści się w tej pamięci. 19
20
John von Neumann 21
22
23
24
Konrad Zuse 25
Historia do Internetu 26
Lampy elektronowe 1907: Lee De Forest wynalazł triodę uznaje się to za początek elektroniki TRANZYSTOR 1940: Russell S. Ohl demonstruje działanie złącza 1947: Shockley, Brattain i Bardeen odkryli tranzystor złączowy UKŁAD SCALONY W lipcu 1958 r. John Kilby z Texas Instruments, a w styczniu 1959 Robert Noyce z Fairchild, prezentują różne koncepcje realizacji układu scalonego Mikroprocesor Intel 4004 (1971) 1974: Intel wprowadza procesor 8080. Mówi się, że jest to najważniejszy produkt XX wieku. Od niego zaczął się rynek mikroprocesorów. 2006: Intel wprowadza Pentium D w regułach 0.065 m, z 376M tranzystorami na strukturze 27
28
Rewolucja w ewolucji Kolejne generacje procesorów Intela wyznaczają rytm rozwoju rynku komputera 29
Liczba tranzystorów na strukturze Wymiar chrakterystyczny [μm] Częstotliwość [Hz] Ewolucja mikroprocesorów Wymiar charakterystyczny [ m] 10 Częstotliwość zegara 1.0E+10 1 1.0E+09 0.1 1.0E+08 0.01 1.0E+09 1970 1975 1980 1985 1990 1995 2000 2005 2010 Rok Liczba tranzystorów w strukturze mikroprocesora 1.0E+07 1.0E+06 1.0E+05 1970 1975 1980 1985 1990 1995 2000 2005 2010 Rok 1.0E+08 1.0E+07 1.0E+06 1.0E+05 Prawo Moore a 1.0E+04 1.0E+03 1970 1975 1980 1985 1990 1995 2000 2005 2010 Rok 30
IBM Cray 31
Historia języków programowania Konrad Zuse uznawany jest za twórcę pierwszego języka programowania "Plankalkul" (1945) jak podaje 1978 ACM History of Programming Languages FORTRAN session. Do tej spory stworzono ponad 2500 języków programowania stosunkowo niewiele z 1957 FORTRAN, 1958 ALGOL, 1960 LISP, 1960 COBOL, 1962 APL, 1962 SIMULA, 1964 BASIC, 1964 PL/I, 1970 Prolog, 1972 C, 1972 Smalltalk, 1975 Pascal, 1975 Scheme, 1979 MODULA-2 1980 dbase II, 1983 Smalltalk-80, 1983 Ada, 1984 Standard ML, 1986 C++, 1988 Mathematica, 1989 HTML, 1990 Haskell, 1995 Delphi, 1995 Java, 1997 PHP 2.0, 2000 C# nich posiada znaczenie. Nowe wersje języków w 2006 r.: 32
Grace Hopper 33
34
P.Baran 35
IBM PC 1981 Apple 1977 36
37
38
S.Jobs 39
1 Sigmund Freud 2 Leo Baekeland 3 Wilbur & Orville Wright 4 Albert Einstein 5 Alexander Fleming 6 Robert Goddard 7 John Maynard Keynes 8 Edwin Hubble 9 Ludwig Wittgenstein 10 Jean Piaget 11 Enrico Fermi 12 Louis, Mary & Richard Leakey 13 Philo Farnsworth If (computer networking) were a traditional 14 Kurt Gödel science, Berners-Lee would win a Nobel Prize. 15 Rachel Carson Eric Schmidt, CEO of Novell 16 William Shockley 17 Alan Turing 18 Jonas Salk 19 James Watson & Francis Crick 40
Tim Berners Lee www, sieć semantyczna 41
systematization 2000 1990 1980 Distributed processing Knowledge processing VLSI Integrated communication network 1970 Centralized processing LSI 1960 Multi-purpose IC 1950 Singlefunction Birth of the computer Tube Tr Kobayashi, 1985 Telephone 1950 1960 1970 1980 1990 2000 communication digitalization 42
Historia komputerów w Polsce 43
1932 Poznań Marian Rejewski Jerzy Różycki Henryk Zygalski 44
45
K.Kuratowski J.Groszkowski EMAL R.Marczyński L.Łukaszewicz XYZ 46
47
48
ZAM-21 ZAM-2 ZAM-41 49
MERA 302 MERA 400 50
51
MERA-9150 1976 MKJ-25 1971 REDIFON ZAM-41 1967 KAR-65 PACKARD-BELL PAR(C) 1961 1961 XYZ ODRA-1001 EMC-1 M-20 (ZAM-1) 1960 (BINEG) 1959 (ZSRR) 1958 1958 PAR(K ) 195 6 GAM-1 1950 ORION MERA-400 1976 K 202 1971 ENIAC 1946 MOMIK 8b 197 3 ZAM-3 1965 ZAM 24 1962 EMAL-2 1955 EMAL-1 (projekt) 1952 ODRA-1325 1971 ZAM-21 1967 IBM 701 (USA) 1953 EDSAC-1 1949 MERA 3001973 ODRA-130 4 1970 ICT 1900 1965 ODRA-1305 1971 ODRA-1103 1966 ODRA-1204 1967 ODRA-1003 1964 ODRA-1002 1962 ODRA-1013 1966 AMC 1964 R-32 1976 R-30 1970 Erywań Drzewo genealogiczne rozwoju polskich komputerów IBM-360 1964 GEO-20 1978 GEO-2 1968 GEO-1 1966 ANOPS-101 1975 ANOPS-10 1971 UMC-10 1963 UMC-1 1962 ANOPS-3 1971 ANOPS-2 1970 SPEC-2 1968 ANOPS-1 1966 SPEC-1 1964 BINUZ BMC-1 52 EMMA 1963
Zakończenie 53
EWOLUCJA KOMPUTERA Komputer jako liczydło Komputer jako system przechowujący i przetwarzający dane i informacje Komputer jako system rozwiązujący problemy (zadania) Komputer jako ekspert - system przetwarzający wiedzę 54
Informatyka to systematyczne badanie systemów algorytmicznych, które opisują i przetwarzają informacje: ich teoria, projektowanie, efektywność, implementacja i zastosowanie. Fundamentalne pytanie brzmi: co można efektywnie zautomatyzować? The Association for Computing Machinery 55
56
57
58