50
1

Plan prezentacji i motto - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/28_04_11_jmadey.pdf · • Algorytm Euklidesa (przełom IV i III w.p.n.e.) • Wczesne techniki,

Embed Size (px)

Citation preview

1

2

Plan prezentacji iPlan prezentacji i mottomotto

• Plan prezentacji

– Część I z dygresjami

– Część II z zagadkami

– Część III z uzupełnieniami

• Motto

富嶽三十六景 Fugaku Sanjū-Rokkei

Thirty Six Views of Mount Fuji

Hokusai Katsushika (1760-1849)

Sanka haku-u

“Mount Fuji in a Summer Storm”

3

Część ICzęść I Język, mowa, pismo, alfabetJęzyk, mowa, pismo, alfabet

4

Odwieczne potrzeby człowiekaOdwieczne potrzeby człowieka

• Komunikowanie się

– Język

– Przekaz informacji na odległość

• Liczenie, mierzenie, porównywanie, a także wnioskowanie

– Matematyka

• Rozwiązywanie zadań

– Algorytmy

5

AlgorytmyAlgorytmy

• Termin — od zlatynizowanej formy nazwiska uczonego arabskiego Al-Chuwarizmi, przełom VIII i IX wieku

– Muhammad ibn Musa al-Chorezmi / Alchwarizmi

– أبو عبد هللا محمد بن موسى الخوارزمي

• Algorytm Euklidesa (przełom IV i III w.p.n.e.)

• Wczesne techniki, narzędzia i urządzenia wspomagające liczenie i realizacje algorytmów

– Palce, abakus, liczydła (szczoty w Rosji, suanpan w Chinach, soroban w Japonii)

– Pałeczki Nepera (Napiera)

– Suwaki, kalkulatory

6

Definicje sprzed wiekuDefinicje sprzed wieku

[WEPI ] tom XXXIII, 1903, str. 266-278:

• Język, w znaczeniu lingwistycznym, językoznawczym, w znaczeniu mowy ludzkiej. Nazwa ta stosuje się pod wpływem przenośni, […] w znaczeniu całej czynności, w znaczeniu procesu i całości mówienia.

• Oczywiście nazwa ta zjawiła się wtedy, kiedy język, w ustach ludzkich umieszczony, stał się istotnie głównym narzędziem wymawiania. W pierwocinach ludzkości, kiedy wymawianie było umiejscowione głębiej, przeważnie w krtani, trudniej mogłoby się dokonać podobne rozszerzenie nazwy języka.

7

Definicje sprzed wieku, c.d.Definicje sprzed wieku, c.d.

(język = mowa)(język = mowa)

• Skojarzenie nazwy języka, jako głównego narzędzia wymawiania, z nazwą języka, jako mowy ludzkiej widoczne jest w wyrażeniach:

– „długi język”

– „miele językiem”

– „na końcu języka”

– „ciągnąć kogo za język”

– „język mu skołowaciał”

8

Definicje sprzed wieku, c.d.Definicje sprzed wieku, c.d.

(język = mowa)(język = mowa)

• Następnie język jest to mowa, która odróżnia, z

jednej strony, człowieka od człowieka

(mówienie indywidualne), plemię od plemienia,

naród od narodu (język w ścisłym znaczeniu), z

drugiej zaś strony, ludzkość czyli rodzaj ludzki

w ogóle (mowa ludzka) od wszystkich innych

zwierząt. [...]

9

Definicje sprzed wieku, c.d.Definicje sprzed wieku, c.d.

(język = pismo)(język = pismo)

• Język, w najobszerniejszym znaczeniu tego

wyrazu, w znaczeniu przenośnym, oznacza

wszelkie sposoby porozumiewania się, a więc

wszelką mimikę i giesty (język palców itp.),

pismo (język znaków itp.), głosy mimowolne i

odruchowe [...]

10

Definicje sprzed wieku, c.d.Definicje sprzed wieku, c.d.

(alfabet)(alfabet)

• Alfabet, ob. Abecadło

• Abecadłem nazywa się zbiór wszystkich znaków piśmiennych, albo liter na wyrażenie pojedyńczych dźwięków pewnego języka, ułożony w pewien zwyczajem ustalony porządek. Nazwa ta wzięła początek od brzmienia w mowie naszej trzech pierwszych głosek a b c w połączeniu z przyrostkiem –dło (pochodnym –adło) – Dawniejszą od tego wyrazu jest nazwa grecka alfabet,

utworzona z nazw dwóch początkowych liter w abecadle greckim alfa, beta, odpowiadającym naszym a b

11

Przykłady alfabetówPrzykłady alfabetów

12

Przykłady alfabetów, c.d.Przykłady alfabetów, c.d.

13

Przykłady alfabetów, c.d.Przykłady alfabetów, c.d.

14

Alfabety „na wesoło” Alfabety „na wesoło”

15

Część IICzęść II Język a pismo japońskieJęzyk a pismo japońskie

Ideogramy KanjiIdeogramy Kanji

16

CzłowiekCzłowiek

• nin, jin, hito

17

Zagadka 1Zagadka 1

• A co oznacza ten znak?

18

DużyDuży

• tai, dai, ookii

19

Zagadka 2Zagadka 2

• tai, dai, ookii oraz nin, jin, hito

• Co to znaczy i jak czytamy?

• Znaczy „dorosły”

• Czytamy: … otona

– Czyli bez żadnego związku z

tai, dai, ookii, nin, jin, hito!

20

GóraGóra

• san, yama

21

A teraz zagadka 3A teraz zagadka 3

• u, ame, ama

• san, kasa

• shu, kubi

• soo, su

22

Część IIICzęść III Ewolucja języków Ewolucja języków

programowaniaprogramowania

23

Mnogość języków naturalnychMnogość języków naturalnych

• Na świecie istnieje obecnie około 3000 języków

• Wieża Babel

– wg biblijnej Księgi Rodzaju wieża, jaką zaczęto

wznosić w ziemi Szinear w Babilonie (po hebrajsku

Babel) z zamiarem, by sięgnęła nieba

– „Rozgniewany zuchwałością budowniczych Bóg

sprawił, że zaczęli mówić różnymi językami i nie

mogąc się porozumieć, musieli przerwać budowę”

24

Języki naturalne a języki sztuczneJęzyki naturalne a języki sztuczne

• Spontaniczność języków naturalnych

• Języki sztuczne

– Próby opracowania języków „uniwersalnych” (Esperanto)

– Języki naukowe

– Języki programowania

• Semantyka a syntaktyka (co pierwotne, co wtórne)

25

Język programowaniaJęzyk programowania: notacjanotacja do zapisu do zapisu

algorytmówalgorytmów w celu ich wykonania przez w celu ich wykonania przez

komputerkomputer

• Notacja – Syntaktyka (składnia)

– Semantyka (znaczenie)

• Algorytmy – Obiekty

– Operacje

– Złożoność

• Komputery – Translacja (kompilacja lub interpretacja)

26

ENIACENIAC

• Electronic Numerical Integrator And Computer

• 1943-45 (14 lutego 1946)

• 30 ton, 17468 lamp

• Arytmetyka dziesiętna

• Brak pamięci operacyjnej

• Programowanie: wtyki kablowe (później karty perforowane)

27

Języki niskiego poziomuJęzyki niskiego poziomu

• Języki wewnętrzne

– Rozkazy procesora (ubogi repertuar!)

– Notacja zerojedynkowa (mało czytelny zapis!)

• Asemblery

– Czytelniejszy zapis

– Proste tłumaczenie („jeden do jednego”)

• Wczesne algorytmy

– Problemy naukowe (głównie dla celów militarnych)

– Wyselekcjonowana grupa ekspertów

28

Dwadzieścia lat późniejDwadzieścia lat później

29

Języki wysokiego poziomuJęzyki wysokiego poziomu • Języki zewnętrzne

• Fortran

– FORmula TRANslator

– Podejście „wstępujące” (ang. bottom-up), IBM 704

– John Backus, 1954-57, BNF

– Fortran IV, Fortran 77, Fortran 90, Fortran 2003

• Algol 60

– ALGOrithmic Language

– Podejście „zstępujące” (ang. top-down)

– Peter Naur, 1958-62, BNF

– Wersja wzorcowa i konkretne realizacje

30

GIER (1962)GIER (1962)

• Tranzystory

• Parametry GIERa

– Pamięć

operacyjna

– Bęben

• Gier Algol

• „Granie na bitach”

• Taśma papierowa

31

Języki wysokiego poziomuJęzyki wysokiego poziomu, c.d.

• Cobol

– COmmon Business Oriented Language

– Grace Murrey Hopper, 1959

• Kontradmirał marynarki wojennej USA

• „In 1951 she discovered the first computer ‘bug’. It was a real moth, which she pasted into the UNIVAC I logbook”

• Lisp • LISt Processing

• John McCarthy, 1958

• Implementacja z 1960 roku na IBM 704 (car, cdr)

• Lisp 1.5, Mlisp, Interlisp, Common Lisp, Scheme

32

„Ruszyła maszyna”„Ruszyła maszyna”

• Peter Landin, CACM 9(3), 1966: „The Next 700 Programming Languages”

• Przykłady innych ważnych języków

– PL/I

– Basic

– Lisp

– Logo

– Algol 68

– C, C++

– Pascal, Modula, Oberon

– Ada

33

OsborneOsborne--1 (1981)1 (1981)

• Mikrokomputery

• Układy scalone

• Protoplasta laptopa

• Parametry takie jak

GIER!

• Dołączane urządzenia

• CP/M, baza danych,

arkusz, edytor, Pascal, ...

34

ENIACENIAC--ONON--AA--CHIP (1997)CHIP (1997)

Size: 7.44mm x 5.29mm; 174,569 transistors

35

Produkcja układów scalonych Produkcja układów scalonych

(2004)(2004)

36

Architektura von NeumannaArchitektura von Neumanna

• Główna idea: nie wyodrębnia się oddzielnej

pamięci dla danych i oddzielnej dla rozkazów

– Ten sam ciąg zer i jedynek w tym samym miejscu

pamięci operacyjnej może w ramach tego samego

programu być różnie interpretowany

• Programy mogą się same modyfikować!

• Sekwencyjna realizacja instrukcji

37

Podstawowe paradygmaty Podstawowe paradygmaty

programowaniaprogramowania

• Programowanie imperatywne

– Polecenia, zmienne, ...

– Języki wewnętrzne

– SAKO, Fortran, Algol, Cobol, Pascal, C, ...

• Programowanie funkcyjne

– Ewaluacja funkcji

– Rachunek lambda z typami

– IPL i Lisp, ML, SML, Miranda, F#, ...

38

Podstawowe paradygmaty Podstawowe paradygmaty

programowania, c.d.programowania, c.d. • Programowanie w logice

– Weryfikowanie relacji i formuł logicznych

– Prolog, 1972, Alain Colmerauer

– Sztuczna inteligencja, „komputery piątej generacji”

– „Konkubinat” z językami funkcyjnymi (Mercury)

• Programowanie obiektowe

– Modularyzacja, hermetyzacja (sekrety)

– Simula 67, Ole-Johan Dahl i Kristen Nygaard

– Obiekty, klasy, dziedziczenie, polimorfizm

– Smalltalk, Loglan, C++, Delphi, Java

39

Era Pascala Era Pascala • Niklaus Wirth

– Euler, Algol W

– Pascal (1971)

• „Strzał w dziesiątkę”

– Elegancja, prostota, łatwość kompilacji

– Światowy standard w edukacji

• Programowanie strukturalne, poprawność

• Wersje Pascala

– Turbo Pascal, Borland Pascal

– Delphi

40

Programowanie współbieżneProgramowanie współbieżne

• Procesy sekwencyjne

• Procesy współbieżne

• Synchronizacja i komunikacja

• Klasyczne problemy

– Zakleszczenie (blokada), zagłodzenie, ścieżka krytyczna

• Sieci, protokoły

• Mechanizmy, modele, języki

– Semafory, monitory, CSP, Concurrent Pascal, Ada, ...

41

Era JavyEra Javy • Narodziny Javy

– Popularność paradygmatu obiektowego

– Uproszczony, zmodyfikowany i przenośny C++

– Oak, 1992, James Gosling (Sun Microsystems)

– Java, 1995

• Najważniejsze wyróżniki Javy

– Niezależność od sprzętu

– Niezależność od systemu operacyjnego

– Możliwość uruchamiania programów w przeglądarkach internetowych

• Ekspansja Javy

– Podzbiór dla celów edukacyjnych

42

I dokąd zdążamy?I dokąd zdążamy? • Nowe wyzwania

– Rozwój technologii teleinformatycznej

– „Multimedialne kombajny”

– Nowatorskie zastosowania

• Różności

– Nowe paradygmaty programowania (np. aspektowe)

– Nowe paradygmaty tworzenia aplikacji (np. .NET )

– Komponenty

– Języki związane z przeglądarkami (np. HTML, XML, PHP)

– Interfejsy!

– ...

• I ciągle będzie coś nowego!

43

WizjonerzyWizjonerzy

• Stanisław Lem

– Niezliczone dzieła, prekursor wirtualnej rzeczywistości

• Marian Załucki, „Wiersz cybernetyczny” (1961)

– Także ocena krajowych możliwości produkcyjnych

• Włodzisław Duch, przewidywania na lata 2030-2050

(www.fizyka.umk.pl/~duch/)

44

A na koniec A na koniec ——

muśnięcie historiimuśnięcie historii

(12 wielkich postaci)(12 wielkich postaci)

45

Wybrani pionierzyWybrani pionierzy

• Blaise Pascal (1623-1662) – Francuski matematyk, fizyk, filozof i teolog

– Pascalina (dodawanie i odejmowanie) • {Zapomniany Wilhelm Schickard (1592-1635); cztery działania}

• Gottfried Wilhelm Leibniz (1646-1716) – Niemiecki matematyk, filozof, inżynier i historyk

– Mechanizm mnożenia i dzielenia dodany do Pascaliny

– Odkrył na nowo system dwójkowy

• Joseph-Marie Jacquard (1752-1834) – Francuski tkacz i wynalazca

– Sterowanie krosnem tkackim za pomocą kart perforowanych

46

Pionierzy, c.d.Pionierzy, c.d.

• Abraham Stern (1769-1842) – Polski zegarmistrz i uczony (dziadek Słonimskiego)

– Pierwszy na świecie arytmometr pięciodziałaniowy

• Charles Babbage (1791-1871) – Angielski matematyk, „ojciec komputera”

– Projektant maszyny różnicowej oraz maszyny analitycznej

• Augusta Ada, hrabina Lovelace (1815-1852) – Angielska matematyczka, córka Lorda Byrona

– Metoda obliczania liczb Bernoulliego

– „Pierwsza programistka świata”

47

Pionierzy, c.d.Pionierzy, c.d.

• George Boole (1815-1864) – Angielski matematyk i filozof

– Algebra dla zbioru dwuelementowego (algebra Boole’a)

• Herman Hollerith (1860-1929) – Amerykański wynalazca

– Mechaniczny system przetwarzania danych

– Spis ludności (USA 1890, Kanada 1891 i Rosja 1897)

• Jan Łukasiewicz (1878-1956) – Polski logik, matematyk i filozof

– Notacja beznawiasowa (ONP)

– Logika trójwartościowa

48

Pionierzy, dokończeniePionierzy, dokończenie • Walther Wilhelm Georg Bothe (1891-1957)

– Niemiecki fizyk jądrowy

– Pierwsza elektroniczna bramka logiczna AND (1924)

– Laureat nagrody Nobla (1954)

• John (János) von Neumann (1903-1957) – Amerykański (węgierski) matematyk, chemik i fizyk

– Współdzielenie pamięci przez program i dane

– System binarny zamiast dziesiętnego

• Alan M. Turing (1912-1954) – Angielski matematyk

– Teoretyczny model obliczeń (maszyna Turinga; 1936)

– Sztuczna inteligencja (test Turinga; 1950)

49

Dziękuję za uwagę Dziękuję za uwagę ── jeszcze tylko jeszcze tylko

źródła źródła Publikacje „papierowe”Publikacje „papierowe” •• David Diringer, David Diringer, Alfabet czyli klucz do dziejów ludzkościAlfabet czyli klucz do dziejów ludzkości, Państwowy Instytut , Państwowy Instytut

Wydawniczy, Warszawa, 1972Wydawniczy, Warszawa, 1972

•• F. J. Granowski i S. J. Sikorski (wyd.), F. J. Granowski i S. J. Sikorski (wyd.), Wielka Encyklopedia Powszechna Wielka Encyklopedia Powszechna IlustrowanaIlustrowana, (55 tomów, przerwana na haśle „Patroklos”), (55 tomów, przerwana na haśle „Patroklos”), , 1880 1880 –– 1914 1914

•• Jan Madey, Jan Madey, Czy to sen, czy Java? O ewolucji języków programowaniaCzy to sen, czy Java? O ewolucji języków programowania, w: M. M. , w: M. M. Sysło (red.), XX Konferencja Informatyka w Szkole, Wrocław, 2004 Sysło (red.), XX Konferencja Informatyka w Szkole, Wrocław, 2004

•• Michael Marcotty, Henry Ledgard: Michael Marcotty, Henry Ledgard: The World of Programming LanguagesThe World of Programming Languages, , SpringerSpringer--Verlag, 1987 (polskie wydanie: Verlag, 1987 (polskie wydanie: W kręgu języków programowaniaW kręgu języków programowania, , Wydawnictwa NaukowoWydawnictwa Naukowo--Techniczne, Warszawa 1991)Techniczne, Warszawa 1991)

•• Oreste Vaccari, Enko Elisa Vaccari, Oreste Vaccari, Enko Elisa Vaccari, Pictorial ChinesePictorial Chinese--Japanese CharactersJapanese Characters, , Sixth Edition, Vaccari’s Language Institute, Tokyo, 1968Sixth Edition, Vaccari’s Language Institute, Tokyo, 1968

Różne witryny internetoweRóżne witryny internetowe

50