Kodowanie informacji

background image

Kodowanie informacji.

background image

Kompresja stratna (800kB)

background image

Kompresja stratna (64kB)

background image

Kodowanie informacji

Kod [łac.], ciąg składników

sygnału (kombinacji sygnałów

elementarnych, np. kropek i

kresek, impulsów prądu,

symboli) oraz reguła ich

przyporządkowania

składnikom wiadomości (np.

znakom pisma);

background image

Kody otwarte i zamknięte

• Kod otwarty jest to jednoklasowy

system znaków, do którego ciągle
można wprowadzać nowe elementy

• Kod zamknięty jest to jednoklasowy

system znaków, do którego nie można
wprowadzać nowych elementów.

Przykładem kodu zamkniętego jest

alfabet.

background image

Jednoklasowość

• Język jednoklasowy – posiada

znaki, które odsyłają do jednej,
skończonej sytuacji (znaki
drogowe, stopnie policyjne,
wojskowe, znaki graficzne- kropki,
kreski, dźwięki o różnych
częstotliwościach)

background image

Louis Braille (1809 - 1852)

opracował wypukły alfabet
dla

niewidzących

jako

szesnastoletnie dziecko na
podstawie

szyfru

wojskowego.

Symbole

brajlowskie

to

tzw

„sześciopunkty. Sześciopunkt
to dwie kolumny punktów, z
których każdy ma swój
numer. Od góry ku dołowi w
lewej kolumnie od 1 do 3 i w
prawej kolumnie od 4 do 6
(czyli literę „a” oznacza
punkt „1”, zaś literę „b”
punkty „1” oraz „2”).

background image

Reguły alfabetu Braill’a

I. Pierwszy rząd znaków, punkty: „1”,”2”,”4”,”5”; jest

podstawą alfabetu.

II. Drugi rząd (k-t) jest powtórzeniem rzędu pierwszego

z dodaniem punktu „3”.

III. Trzeci rząd (u-]) jest powtórzeniem rzędu pierwszego

z dodaniem punktów „3” i „6”.

IV. Czwarty rząd (ą-w) jest powtórzeniem rzędu

pierwszego z dodaniem punktu „6”.

V. Piąty rząd (znaki przestankowe) jest powtórzeniem

rzędu pierwszego „opuszczonego” o jeden punkt

(zbudowany na punktach 2,3,4,5).

VI. Szósty rząd to dwa górne znaki prawostronne (4i5),

które ulegają takim samym modyfikacjom jak rząd 1.

VII. Siódmy rząd zawierza trzy znaki oparte na

punktach dolnych (3i6) oraz „pusty sześciopunkt.

background image

Alfabet Morse'a

• stworzony w 1832 przez

wynalazcę telegrafu, Samuela
Morse, kod naśladujący alfabet -
sposób reprezentacji znaków
alfabetu łacińskiego za pomocą
impulsów elektrycznych.

background image
background image

Kod Baudot ( Émile

Baudot)

• Kod jest zestawem znaków używanych w

dalekopisach, był pierwowzorem kodów EBCDIC

oraz ASCII.

• Oryginalny kod Baudot powstał około roku 1874 i

znany jest jako International Telegraph Alphabet No

1 (ITA1), i nie był już więcej używany.

• Około roku 1901 kod Baudot został zmodyfikowany

przez

Donalda Murraya

. Kolejne modyfikacje zrobił

Western Union

. Od tego czasu kod Baudot nosi

nazwę International Telegraph Alphabet No 2

(ITA2). ITA2 jest wciąż używany między innymi w

telekomunikacyjnych urządzeniach dla

głuchoniemych

TDD

i w krótkofalarstwie jako RTTY.

background image

Dalekopisy

background image

Donald Murray

Donald Murray, dziennikarz z Nowej Zelandii,
zmodyfikował system Baudota, łącząc go z
linotypem do odlewania czcionek, co umożliwiło
skład gazet na odległość. "Fortepianowe" klawisze,
wymagające dużej wprawy w bezpośrednim
kodowaniu znaków, zostały zastąpione klawiszami
dla poszczególnych znaków, jak w maszynie do
pisania.

Zastosowanie Kodu Murray’a dało początek
dziennikom o zasięgu krajowym, drukowanym i
dystrybuowanym co rano równocześnie w wielu
miastach

background image

Western Union Telegraph

Od systemu Murray'a,

zakupio- nego i
zmodyfikowanego
przez Western Union
Telegraph Company,
rozpoczęła się era
standaryzacji w skali
krajowej i światowej

background image

Kiedy to się zaczęło...?

Właściwie wtedy, gdy zaczęto kodować ... np.

Alfabet Braile’a (poziom 2).

6 bitów (czyli 64 możliwości)

wykorzystane do kodowania liter, cyfr i znaków przestankowych,

oraz... najczęściej występujących krótkich słów:

and

Kod Baudota.

Kod do komunikacji telegraficznej: 5 bitów, ale

jedno ze słów kodowych pozwala na przełączanie między

literami i „obrazkami” (obrazki to cyfry, znaki przestankowe,

kody sterujące, operatory arytmetyczne). W wyniku kodujemy

nie 32 elementy lecz 64, i liczymy na to, że przełączanie

występuje rzadko....

background image

• Kody generowane były

dwoma palcami lewej i
trzema palcami prawej rąki,
za pomocą klawiszy
przypominających
fortepianowe, w rytm sygnału
dźwiękowego, co wymagało
pewnej wprawy.

• Przełomowe znaczenie

konstrukcji Baudota polegało
na tym, że przewidywała ona
tylko dwa stany elektryczne:
istnienie lub brak napięcia,
interpretowanych niezależnie
od czasu trwania takich
zmian.

background image

Kodowanie Huffmana

Kodowanie Huffmana to jedna z najprostszych i

łatwych w implementacji metod kompresji

bezstratnej. Została opracowana w 1952 roku przez

Amerykanina Davida Huffmana.

• Algorytm Huffmana nie należy do

najefektywniejszych systemów bezstratnej

kompresji danych, dlatego też praktycznie nie

używa się go samodzielnie. Często wykorzystuje się

go jako ostatni etap w różnych systemach

kompresji, zarówno bezstratnej jak i stratnej, np.

MP3 lub JPEG. Pomimo, że nie jest doskonały,

stosuje się go ze względu na prostotę oraz brak

ograniczeń patentowych

background image

Kodowanie.

Kodowanie o stałej długości:

• Każde słowo kodowe ma tę samą długość

np. K(a)=

0001

, K(b)=

0010

, K(c) musi mieć 4

bity

Kodowanie o zmiennej długości:

• Słowa kodowe mogą mieć różne długości

np. K(a)=

0001

, K(b)=

100

Kodowanie jednoznaczne

• Po zakodowaniu słowa

x

do postaci

y

można je

odkodować tylko na jeden sposób, uzyskując

x

.

background image

Kod ASCII (17.06. 1963)

ASCII [aski] ( American Standard Code for

Information Interchange) - 7-bitowy kod

przyporządkowujący liczby z zakresu 0-127 literom

(alfabetu angielskiego), cyfrom, znakom

przestankowym i innym symbolom oraz poleceniom

sterującym. Przykładowo litera "a" jest kodowana

liczbą 97, a polecenie "powrót karetki" – liczbą 13.

• Litery, cyfry oraz inne znaki drukowane tworzą zbiór

znaków ASCII. Jest to 95 znaków o kodach 32-126.

Pozostałe 33 kody (0-31 i 127) to tzw. kody sterujące

służące do sterowania urządzeniem odbierającym

komunikat, np. drukarką czy terminalem.

background image

Kod ASCII

sterowanie

transmisją

cyfry, interpunkcja i

inne
sterujące i kontrolne

sterowanie

urządzeniami
formatowanie

przekazu
separatory

informacji
wielkie i małe litery
nieznaczące oraz

spacja

background image

ASCII- Tabela Kodów

background image

Nie-pozycyjny kod Gray’a

• Podstawową cechą wyrazów kodu Gray'a jest

to, iż każde dwa kolejne wyrazy

(również

pierwszy i ostatni)

różnią się od siebie stanem

tylko jednego bitu.

• 1 bitowy kod Gray'a : 0 1
• 2 bitowy kod Gray'a :00 01 11 10
• 3 bitowy kod Gray'a :

000 001 011 010 110 111 101 100

background image

Kodowanie naturalne

binarne

• Tarcza kodowa. Kod naturalny

binarny .

Załóżmy, iż jasny pas odczytujemy

jako zero, a pas czarny jako 1. Na
powyższym rysunku tarcza
kodowa zwraca zatem kod 010 →
2. Stan ten jest ustabilizowany. Co
jednak się stanie, gdy tarcza
zacznie się obracać: nieuchronne
niedokładności w układzie
mechanicznym oraz parametry
obwodów optycznych spowodują,
że nie otrzymamy ładnego
przejścia kodu 011 → 3 w 100 → 4.
Zwróć uwagę, iż na tej granicy
zmieniają się wszystkie bity
słówka kodowego

background image

Kodowanie binarne Gray’a

• Tarcza kodowa, nie

pozycyjny kod Gray’a

W tym przypadku

niepewność

kodowania może

dotyczyć tylko

jednego bitu - albo

otrzymamy kod

poprzedni, albo kod

następny - nie będzie

natomiast błędnych

odczytów pośrednich.

background image

Algorytm

background image

Algorytm

Algorytm – w matematyce oraz informatyce

to skończony, uporządkowany ciąg jasno
zdefiniowanych czynności, koniecznych do
wykonania pewnego zadania. Słowo
"algorytm" pochodzi od nazwiska
Muhammed ibn Musa Alchwarizmi (دبع وبأبو عبد

يمزراوخلااا ىسوم ناااب دمح م هللااا) matematyka

perskiego z IX wieku i początkowo
oznaczało w Europie sposób obliczeń oparty
na dziesiętnym systemie liczbowym

background image

Algorytm w matematyce

Algorytm to jednoznaczny przepis

przetworzenia w skończonym czasie
pewnych danych wejściowych do pewnych
danych wynikowych.

Zazwyczaj przy analizowaniu bądź

projektowaniu algorytmu zakłada się, że
dostarczane dane wejściowe są poprawne,
czasem istotną częścią algorytmu jest nie
tylko przetworzenie ale i weryfikacja
danych

background image

Algorytm w informatyce

Komputery przetwarzają przekazywane im informacje

z wykorzystaniem algorytmów. Program jest

algorytmem zapisanym w języku zrozumiałym dla

maszyny (asemblerze). Każdy kod maszynowy da się

przełożyć na zestaw instrukcji dla teoretycznego

modelu komputera - maszyny Turinga.

Zwykle algorytmy pracują na danych wejściowych i

uzyskują z nich dane wyjściowe. Informacje

zapisane w pamięci maszyny traktuje się jako jej

stan wewnętrzny. Niektóre algorytmy mają za
zadanie wyłącznie przeprowadzanie komputera

z

jednego stanu wewnętrznego do innego.

background image

Algorytm w informatyce

• Poprawne działanie większości

algorytmów implementowanych w
komputerach opiera się na kolejnej
realizacji pewnego zestawu warunków.
Jeżeli, któryś z nich nie zostanie
spełniony, to program kończy się
komunikatem błędu.

background image

Euklides „Elementy”

Elementy (

gr.

Στοιχεῖα,

Stoicheia) – jedno z

najsłynniejszych dzieł

naukowych w historii ludzkości,

pochodzący z III wieku p.n.e.

traktat arytmetyczny i

geometryczny, obejmujący

swym zakresem podstawowe

zagadnienia obu tych nauk.

Elementy ukształtowały sposób

myślenia o teoriach

matematycznych i stały się

wzorcem do naśladowania w

wielu dziedzinach nauki. Są

klasycznym przykładem metody

dedukcyjnej i świadectwem siły

rozumowania formalnego

opartego na logice.

background image

Architektura Komputera

Turing,Von Neumann, J.P.

Eckert

background image

Maszyna Turinga

• Przebywając w Cambridge Turing napisał swoją

prawdopodobnie najważniejszą pracę matematyczną On
Computable Numbers
czyli O liczbach obliczalnych. To
właśnie w niej wprowadził abstrakcyjną maszynę, która była
w stanie wykonywać zaprogramowaną matematyczną
operację czyli tak zwany algorytm. Maszyna mogła wykonać
jednak tylko jeden, określony algorytm, na przykład mogła
podnieść liczbę do kwadratu, podzielić, dodać, odjąć. Według
Turinga liczby miały być podawane maszynie za pomocą
papierowej taśmy podobnej do taśmy z melodią zapisaną dla

pianoli

. W swojej pracy Turing opisał wiele takich maszyn,

które uzyskały wspólne miano maszyn Turinga. Następnie
Turing opracował tak zwaną uniwersalną maszynę Turinga,
która w zależności od instrukcji zapisanej na taśmie, miała
wykonywać dowolną operację

background image

Maszyna Turinga

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

background image

Maszyna Turinga

MT= <Q, S, , , q

0

, , F>

Gdzie:
        q

0,

q

1

,......q

m

Q skończony dopuszczalny zbiór stanów

maszyny,

        s

0,

s

1,..............

s

n

S

zbiór symboli wejściowych maszyny,

         funkcja ( instrukcja).
         skończony zbiór dopuszczalnych symboli,
        q

0

stan początkowy,

         symbol pusty,
        F zbiór stanów końcowych,
Instrukcja Maszyny Turinga:

(s

l

,q

i

,s

k

,q

j

, L/R)

background image

Maszyna Turinga


background image

Von Neumann

John von Neumann (ur. 28

grudnia 1903 w

Budapeszcie, zm. 8 lutego

1957 w Waszyngtonie),

inżynier chemik, fizyk,

matematyk i informatyk.

Wniósł znaczący wkład do

wielu dziedzin matematyki,

szczególnie teorii gier i

uporządkował formalizm

matematyczny mechaniki

kwantowej. Uczestniczył w

projekcie Manhattan.

Przyczynił się do rozwoju

numerycznych prognoz

pogody.

background image

Architektura von

Neumanna

Architektura von Neumanna - rodzaj architektury

komputera, przedstawionej po raz pierwszy w 1945

roku przez von Neumanna stworzonej wspólnie z

Johnem W. Mauchly'ym i Johnem Presper Eckertem .

Mauchly i Eckert oskarżali von Neumanna o przywłaszczenie wspólnych wyników prac.

Sam von Neumann uważał ich pracę za dzieło zbiorowe o licencji public domain

(projekt był współfinansowany przez rząd amerykański).

Polega na ścisłym podziale komputera na trzy

podstawowe części:

• Procesor (w ramach którego wydzielona bywa część

sterująca oraz część arytmetyczno-logiczna)

• pamięć komputera (zawierająca dane i sam program)
• urządzenia wejścia/wyjścia

background image

Architektura von Neumana

• System komputerowy zbudowany w oparciu o

architekturę von Neumanna powinien:

• mieć skończoną i funkcjonalnie pełną listę rozkazów
• mieć możliwość wprowadzenia programu do systemu

komputerowego poprzez urządzenia zewnętrzne i prze-

chowywanie w pamięci w sposób identyczny jak danych

• dane i instrukcje w takim systemie powinny być

jednakowo dostępne dla procesora

• Informacja jest tam przetwarzana dzięki sekwencyjnemu

odczytywaniu instrukcji z pamięci komputera i

wykonywaniu tych instrukcji w procesorze.

• Podane warunki pozwalają przełączać system

komputerowy z wykonania jednego zadania (programu)

na inne bez fizycznej ingerencji w strukturę systemu, a

tym samym gwarantują jego uniwersalność.

background image

Architektura von Neumana

W 1945 Von Neumann opublikował książkę: "First Draft of a

Report on the EDVAC", opisującą architekturę Von Neumanna.

System komputerowy von Neumanna nie

posiada oddzielnych pamięci do

przechowywania danych i instrukcji.

Instrukcje jak i dane są zakodowane w

postaci liczb. Bez analizy programu trudno

jest określić czy dany obszar pamięci zawiera

dane czy instrukcje. Wykonywany program

może się sam modyfikować traktując obszar

instrukcji jako dane, a po przetworzeniu tych

instrukcji - danych - zacząć je wykonywać.

background image

background image

background image

background image

Architektura Von Neumanna

PROCESOR (CPU)
1.

Jednostka arytmetyczno-logiczna ALU-wyposażona w
zestaw rejestrów Blok wstępnego pobierania i
dekodowania instrukcji.

2.

Zapewnia ona prawidłowe przetworzenie wszystkich
danych stałoprzecinkowych.

3.

FPU(Floating Point Unit) czyli koprocesor wykonujący
wszystkie obliczenia zmiennoprzecinkowe .

4.

Moduł wyjściowy procesora. Jego zadaniem jest
sterowanie strumieniem informacji np. do
odpowiedniego adresu w pamięci operacyjnej lub
urządzenia wejścia/wyjścia.

background image

Architektura Von Neumanna

PAMIĘĆ :
RAM (ang. Random Access Memory) - zwana też

pamięcią użytkownika lub pamięcią o dostępie
swobodnym.

W pamięci RAM przechowywane są. Zawartość pamięci

RAM, którą są aktualnie wykonywane programy i dane dla
tych programów, oraz wyniki ich pracy jest tracona w
momencie zaniku napięcia zasilania.

 
ROM (ang. Read-Only Memory - pamięć tylko do odczytu)

Jest to rodzaj pamięci operacyjnej urządzenia
elektronicznego, w szczególności komputera. Zawiera ona
stałe dane potrzebne w pracy urządzenia - np. procedury
startowe komputera, czy próbki przebiegu w cyfrowym
generatorze funkcyjnym.

background image

URZĄDZENIA WEJŚCIA/WYJŚCIA

Urządzenie wejścia-wyjścia, urządzenie we/wy,

urządzenie I/O (ang. input/output device)
służy do komunikacji komputera z
użytkownikiem, komputerem lub innym
urządzeniem również pomiarowym i
sterującym .

background image

Architektura harwardzka

Architektura harwardzka - rodzaj architektury komputera. W

odróżnieniu od architektury von Neumanna, pamięć danych
programu jest oddzielona od pamięci rozkazów. Prostsza (w
stosunku do architektury von Neumanna) budowa przekłada
się na większą szybkość działania - dlatego ten typ
architektury jest często wykorzystywany w procesorach
sygnałowych oraz przy dostępie procesora do pamięci cache

Separacja pamięci danych od

pamięci rozkazów

sprawia, że

architektura harwardzka jest obecnie powszechnie stosowana
w mikrokomputerach jednoukładowych , w których dane
programu są najczęściej zapisane w nieulotnej pamięci ROM
(EPROM/EEPROM), natomiast dla danych tymczasowych
wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna).

background image

background image

Języki Programowania

Początkowo proces programowania polegał na

zapisywaniu wszystkich algorytmów w języku
maszynowym a więc zdeterminowa-nym fizyczną
realizacją hardware’u komputera. Lista rozkazów
maszynowych nie jest długa. Rozkazy można podzielić
na 3 kategorie:

• -         przesyłanie danych
• -         operacje arytmetyczno-logiczne
• -         rozkazy sterujące

background image

Typowy język maszynowy

background image

Cykl maszynowy

background image

Format rozkazu

background image

Lista rozkazów –język maszynowy

background image

Lista rozkazów –język maszynowy

background image

Lista rozkazów –język maszynowy

background image

Języki programowania - przykład

Zakładamy, że wartości „ceny” i „podatku”

zapisane będą w pamięci pod adresami 6C

HEX

(01101100)

BIN

i 6D

HEX

(01101101)

BIN

w notacji

uzupełnieniowej do dwóch. Suma ma zostać
umieszczona w pamięci pod adresem 6E
(01101111).Struktura umownego komputera ma
postać jak poprzednio

background image

Języki programowania – język wewnętrzny

(przykład)

Krok 1. 156C (przesłanie danej

z adresu 6C do rejestru 5)

Krok 2. 166D (przesłanie danej

z adresu 6D do rejestru 6)

Krok 3. 5056 (sumowanie

danych z rejestru 5 i 6, wynik
w rejestrze0)

Krok 4. 306E (przesłanie sumy

do komórki 6E)

Krok 5. C000 (stop)

background image

Języki programowania – asembler

Asembler – korzysta z kodów mnemotechnicznych (mnemonicz
nych) do przedstawiania zadań odnoszących się bezpośrednio

do sprzętu.

Kod mnemotechniczny to łatwe do zapamiętania słowo lub

skrót, który przedstawia całe zadanie dla mikroprocesora.
Np.
MOV (move – przesuń) przemieść lub przesuń informację z

jednego miejsca pamięci w inne.
JMP (jump – skocz) przejdź do innego miejsca w pamięci
MUL (multiplay – mnóż) mnóż zawartość akumulatora,
przez zawartość wyszczególnionego rejestru
RET (return – wróć) powróć z podprogramu do progra-
mu głownego.
SETB (set bit – ustaw bit) wstaw wartość „1” na pozycji

bezpośrednio zaadresowanej

.

background image

Języki programowania – asembler (przykład)

LD R5, CENA

LD R6, PODATEK

ADDI R0, R5, R6

ST R0, SUMA

HLT

background image

Porównanie instrukcji język C, asembler,

kod dwójkowy

background image

Języki programowania – kompilator

Kompilator – Tłumaczy na raz cały program i

zachowuje go na dysku. Kompilator sprawdza
czy plik źródłowy przygotowany został zgodnie
z regułami danego języka i wspólnie z
konsolidatorem, czyli programem łączącym
zamienia wszystkie instrukcje w ciągi binarne
w języku wewnętrznym procesora (plik
wykonywalny). Przetłumaczony program jest
uruchamiany z pliku wykonywalnego

background image

Języki programowania – kompilator

background image

Języki programowania – kompilator

background image

Języki programowania – kompilator

• Programy kompilowane

zapamiętane w postaci pliku
wykonywalnego działają bez
potrzeby następnej kompilacji, a
więc działają szybko.

Języki kompilowane to: C, C

+

+

, Pascal, Cobol, Fortran.

background image

Kompilator- konsolidator- kod dwójkowy

background image

Paradygmaty programowania

Paradygmat - w rozumieniu wprowadzonym

przez filozofa Thomasa Kuhna w książce

Struktura rewolucji naukowych (The Structure

of Scientific Revolutions) opublikowanej w

1962 r. - to zbiór pojęć i teorii tworzących

podstawy danej nauki.

background image

Paradygmat

Paradygmat od tzw. dogmatu odróżnia kilka zasadniczych cech:
• nie jest on dany raz na zawsze - lecz jest przyjęty na

zasadzie konsensusu większości badaczy;

• może okresowo ulec zasadniczym przemianom prowadzącym

do głębokich zmian w nauce zwanych rewolucją naukową;

• podważa sens absolutnej słuszności.
Dobry paradygmat posiada kilka cech, i m. in. musi:
• być spójny logicznie i pojęciowo;
• być jak najprostszy i zawierać tylko te pojęcia i teorie, które

są dla danej nauki rzeczywiście niezbędne;

• dawać możliwość tworzenia teorii szczegółowych zgodnych

ze znanymi faktami.

background image

Paradygmat imperatywny

Programowanie proceduralne to

paradygmat

• programowania zalecający dzielenie kodu na

procedury, czyli fragmenty wykonujące
ściśle określone operacje.

• Procedury nie powinny korzystać ze

zmiennych globalnych (w miarę możliwości),
lecz pobierać i przekazywać wszystkie dane
(czy też wskaźniki do nich) jako parametry
wywołania.

background image

Paradygmat imperatywny

• Tradycyjne podejście – praca

zgodna z cyklem maszynowym,
pobierz dane- dekoduj- wykonaj.
Znalezienie algorytmu realizacji
ciągu poleceń manipulujących
danymi i produkujących wyniki

background image

Paradygmat deklaratywny

• Zadanie polega na odkryciu i

zaimplementowaniu ogólnego algorytmu
rozwiązywania problemów. Zadanie
programisty polega na takim precyzyjnym
opisie problemu aby dało się go rozwiązać
wspomnianym ogólnym algorytmem. Z tego
względu języki deklaratywne były językami
opracowanymi dla wąskich zastosowań, np.
symulacji zjawisk ekonomicznych w czasie,
fizycznych w czasie, politycznych w czasie.

background image

Paradygmat funkcyjny

• Program powstaje jako konstruowanie „czarnych

skrzynek” każda pobiera dane wejściowe i
produkuje wyniki. Matematycy takie „skrzynki”
nazywają funkcjami. Konstrukcjami pierwotnymi
języka funkcyjnego są funkcje elementarne, z
których programista tworzy bardziej złożone
funkcje. Paradygmat funkcyjny wymusza
konstruowanie programów w sposób modularny,
programy traktuje się jak funkcje i konstruuje
dla innych funkcji. Informatycy uważają, że jest
to najlepsza metoda konstruowania dużych
pakietów oprogramowania.

background image

Paradygmat funkcyjny

Np. W języku Lisp

procedura
obliczająca wartość
średnią ma postać
:
(Podziel (Sumuj
Liczby) (Zlicz
Liczby))

background image

Paradygmat obiektowy

• Dane traktuje się jako aktywne „obiekty” a nie pasywne

jednostki jak w paradygmacie imperatywnym. W podejściu
obiektowym obiekt zawiera zbiór danych oraz kompletny
zestaw procedur obsługujących te dane:

• -         każdy obiekt implementuje się jako oddzielny dobrze

określony moduł,

• -         raz zdefiniowany obiekt można wykorzystać gdy

potrzebny jest nowy jego egzemplarz,

• -         zdefiniowane obiekty można włączać do bibliotek

programowych, z których można konstruować nowe systemy
oprogramowania,

• komunikacja między obiektami odbywa się na zasadzie

przesyłania komunikatów – techniki podstawowej w sieciach
komputerowych, implementacja takiego systemu obiektów o
zasięgu ogólnosieciowym jest celem otwartego

systemu

CORBA (Common Object Request Broker Architecture

background image

Paradygmat obiektowy

Np. Listę osób w podejściu

imperatywnym traktuje się jako zbiór
danych,

w podejściu obiektowym lista jest

obiektem zawierającym listę osób wraz
z procedurami obsługi, wstawianie
nowych danych, sortowanie,
sprawdzanie zawartości, usuwanie
elementu itp.

background image

Ewolucja paradygmatów programowania


Document Outline


Wyszukiwarka

Podobne podstrony:
4 kodowanie informacji
6 kodowanie informacji ciągłej
R2 Kodowanie informacji
BW12 teoria informacji i kodowania turbokody
Z Ćwiczenia 20.04.2008, Zajęcia, II semestr 2008, Teoria informacji i kodowania
Arek Kurasz-sprawozdanie 1-Kodowanie nadmiarowe kod Hamminga, Politechnika Opolska, Informatyka, Sem
Z Wykład 24.02.2008, Zajęcia, II semestr 2008, Teoria informacji i kodowania
BW7 8 9 Teoria informacji i kodowanie kody cykliczne cale 6g
1 i 2, semestr 2, teoria informacji i kodowania
Kodowanie znaków narodowych w dokumentach w Pajączku, Informatyka
w3 kodowanie CRC-6FC5BADB, Informatyka
Z Wykład 30.03.2008, Zajęcia, II semestr 2008, Teoria informacji i kodowania
Microsoft Word Teoria Informacji i Kodowania
informatyka sztuka kodowania sekrety wielkich programistow peter seibel ebook
techniki informacyjne

więcej podobnych podstron