File8


Podstawy programowania
wykład 3
Dr inż. Jakub Bauman
jakub.bauman@gmail.com
Wprowadzenie do programowania
Paradygmaty programowania
Dr inż. Jakub Bauman
jakub.bauman@gmail.com
Plan wykładu
*ð Wprowadzenie do jÄ™zyków programowania
*ð Generacje jÄ™zyków programowania
*ð Translacja, interpretacja, kompilacja
*ð Paradygmaty programowania
*ð Programowanie imperatywne
*ð Programowanie proceduralne
*ð Programowanie deklaratywne
*ð Programowanie strukturalne
*ð Programowanie obiektowe
*ð Programowanie logiczne
Co to jest język programowania?
*ð jÄ™zyk programowania to systematyczny sposób
przekazywania maszynie zadań do wykonania
*ð za pomocÄ… jÄ™zyków programowania precyzyjnie
zapisujemy algorytmy i inne zadania dla komputera
dane + algorytm
symbole
Język słowa kluczowe
programowania syntaktyka
semantyka
Program
Syntaktyka i semantyka
*ð syntaktyka (skÅ‚adnia)
*ð opisuje struktury sterujÄ…ce (pÄ™tle, przypisania, warunki)
*ð opisuje struktury danych (zmienne, rekordy)
*ð tworzy poprawne symbole do nazywania zmiennych
*ð definiuje sposób korzystania z interpunkcji
*ð definiuje sposób budowania poprawnych wyrażeÅ„
*ð semantyka (znaczenie)
*ð okreÅ›la znaczenie poprawnych skÅ‚adniowo wyrażeÅ„
Generacje języków
programowania
*ð historiÄ™ rozwoju jÄ™zyków programowania podzielono
arbitralnie na 5 okresów/generacji
*ð poszczególne generacje opisujÄ… zaawansowanie
struktur języka, czyli odpowiadają przyjazności
poszczególnych języków
I generacja
*ð pierwsza generacja jÄ™zyków programowania to
programowanie bezpośrednio w kodzie binarnym
*ð każdy typ komputera posiada wÅ‚asny kod (listÄ™
rozkazów procesora) nazywany kodem maszynowym
*ð każdy program musi być przepisany w konkretnym
kodzie maszynowym
1000010110101010100010101011101010011010
1010101010101010010101010010101010010101
0101011111111111010101101111111100000010
1010101010101010101010101010010101001010
II generacja
*ð aby uÅ‚atwić programowanie, każdej kombinacji
symboli 0 i 1 przypisano znaki mnemotechniczne
*ð jÄ™zyki operujÄ…ce znakami mnemotechnicznymi
nazywane są językami symbolicznymi lub
asemblerami
*ð asembler jest tÅ‚umaczeniem kodu maszynowego,
program nie musi być już pisany pod konkretny typ
komputera
mov bx, 12
mov ax, 10
add ax, bx
mov [3987], 20
int 32
III generacja
*ð jÄ™zyki III generacji to jÄ™zyki wysokiego poziomu, w
których znaki mnemotechniczne zastąpione
niezależnym od maszyny kodem zbliżonym do języka
naturalnego lub matematycznego
*ð jÄ™zyki wysokiego poziomu sÄ… uniwersalne
*ð istnieje tendencja do specjalizacji i orientacji jÄ™zyków
int x := 0;
for (int i=0; i++, i<0) loop
x := tab[i] + tab[i-1];
end loop;
IV generacja
*ð jÄ™zyki IV generacji to Å›rodowiska graficzne
generowania gotowych aplikacji na podstawie
predefiniowanych modułów
*ð czÄ™sto rozszerzajÄ… funkcjonalność istniejÄ…cych
języków
*ð jÄ™zyki programowania obiektowego jako IV generacja
V generacja
*ð jÄ™zyki V generacji to jÄ™zyki programowania w logice,
wykorzystujące sztuczną inteligencję, często pod
postacią języka naturalnego lub języka zbliżonego do
naturalnego
mother(gaia,uranus).
parents(cronus,rhea,zeus).
female(persephone).
male(apollo).
mother(X,Y) :- parents(_,X,Y).
female(X) :- mother(X,_).
father(X,Y) :- parents(X,_,Y).
Generacje języków:
podsumowanie
języki niskiego
i wysokiego poziomu
*ð jÄ™zyk niskiego poziomu to zbiór instrukcji
wykonywanych bezpośrednio w procesorze
*ð jÄ™zyk wysokiego poziomu ma wyższy poziom
abstrakcji a składnia i słowa kluczowe służą
ułatwieniu zrozumienia programu przez człowieka,
kod języka wysokiego poziomu nie jest bezpośrednio
zrozumiały dla komputera i wymaga przetłumaczenia
do postaci języka niskiego poziomu
Translacja
*ð translacja to proces tÅ‚umaczenia kodu w jÄ™zyku wysokiego
poziomu na ciąg instrukcji zrozumiałych dla maszyny, która
wykonuje kod
*ð translacja tÅ‚umaczy z jÄ™zyka zródÅ‚owego na semantycznie
równoważny zapis w języku wynikowym
*ð program wykonujÄ…cy translacjÄ™ to translator
*ð kompilator tÅ‚umaczy bezpoÅ›rednio na jÄ™zyk maszynowy,
kolejne uruchomienia programu nie wymagają powtórnej
kompilacji, przykłady to C, C++, Pascal, Fortran
*ð interpreter tÅ‚umaczy kod zródÅ‚owy linia po linii, z
pominięciem pliku wynikowego, każde uruchomienie
programu to ponowna interpretacja, przykłady to JavaScript,
Python, HTML, GnuPlot
Jak powstaje program
Algorytm
Programowanie
Kod w języku
wysokiego poziomu
Kompilacja
Kod maszynowy
Paradygmaty programowania
Paradygmat - definicja
*ð Paradygmat, w filozoficznej teorii poznania i
metodologii ogólnie uznane osiągnięcie naukowe,
które dostarcza modelowych rozwiązań w danej
dziedzinie nauki, może też pociągać za sobą
modelowe rozwiÄ…zania w dziedzinach pokrewnych i
stawać się istotnym składnikiem poglądu na świat.
yródło: portalwiedzy.onet.pl
Paradygmaty programowania
*ð Paradygmat programowania (ang. programming
paradigm)  wzorzec programowania przedkładany
w danym okresie rozwoju informatyki ponad inne lub
szczególnie ceniony w pewnych okolicznościach lub
zastosowaniach.

*ð Zatem paradygmat programowania to ogół
oczekiwań programisty wobec języka programowania
i komputera, na którym będzie działał program.
Przykładowe paradygmaty
programowania
imperatywne a deklaratywne
*ð programowanie imperatywne
*ð program opisuje kolejne czynnoÅ›ci które należy
wykonać
*ð program specyfikuje w jaki sposób maszyna ma dziaÅ‚ać
*ð programowanie deklaratywne
*ð program opisuje cel, który ma zostać osiÄ…gniÄ™ty
*ð program specyfikuje wynik jaki maszyna ma uzyskać, ale
nie określa sposobu uzyskania wyniku
programowanie imperatywne
*ð programowanie imperatywne to najbardziej podstawowy i
naturalny sposób programowania, w którym program jest
sekwencją instrukcji i poleceń dla komputera
*ð obliczenia sÄ… rozumiane jako sekwencja poleceÅ„
zmieniających, krok po kroku, stan maszyny, aż do
uzyskania pożądanego wyniku
*ð stan maszyny to zawartość pamiÄ™ci operacyjnej, rejestrów i
znaczników procesora
*ð przykÅ‚ady: kod maszynowy, asembler, Pascal, Ada, C
programowanie proceduralne
*ð programowanie proceduralne polega na podziale
zadania na mniejsze podzadania, które stanowią
fragmenty wykonujące ściśle określone operacje
*ð poszczególne fragmenty sÄ… implementowane
niezależnie od siebie w postaci podprogramów
(procedur, funkcji)
*ð komunikacja miÄ™dzy podprogramami odbywa siÄ™
poprzez przekazywanie danych (lub wskazników)
*ð możliwa jest także komunikacja przez zmienne globalne
programowanie strukturalne
*ð programowanie strukturalne charakteryzuje siÄ™ użyciem
prostych, ściśle zdefiniowanych struktur (konstrukcji
programistycznych)
*ð sekwencja
*ð instrukcja warunkowa
*ð iteracja
*ð wywoÅ‚anie podprogramu
*ð w programowaniu strukturalnym unikamy instrukcji skoku
oraz innych instrukcji zakłócających sekwencyjne
wykonanie programu (break, continue, switch)
programowanie obiektowe
*ð program jest zbiorem obiektów, które komunikujÄ… siÄ™
ze sobą za pomocą przesyłanych komunikatów obiekt
to byt zawierający dane i posiadający zdolność do
wykonywania operacji na danych
*ð cechy obiektów
*ð dziedziczenie
*ð polimorfizm
*ð hermetyczność
*ð enkapsulacja
programowanie logiczne
*ð program skÅ‚ada siÄ™ ze zbioru faktów, zbioru
przesłanek i celu wnioskowania
*ð wykonanie programu to próba udowodnienia celu w
oparciu o znane fakty i podane przesłanki
*ð obliczenia wykonywane sÄ… "przy okazji" dowodzenia
celu
*ð program nie specyfikuje sposobu dojÅ›cia do celu, lecz
cel
przykład programowania logicznego
*ð znane fakty
*ð Jan jest ojcem Jerzego, Jerzy jest ojcem Janusza i Józefa
*ð bycie dziadkiem oznacza bycie ojcem ojca
*ð cel wnioskowania
*ð kto jest dziadkiem Janusza?
ojciec(jan,jerzy).
ojciec(jerzy,janusz).
ojciec(jerzy,józef).
dziadek(X,Z) :- ojciec(X,Y),
ojciec(Y,Z).
?- dziadek(X,janusz).
pozostałe paradygmaty
programowania
*ð programowanie sekwencyjne i współbieżne
*ð programowanie współbieżne
*ð synchroniczne
*ð asynchroniczne
*ð programowanie współbieżne
*ð scentralizowane
*ð rozproszone
*ð programowanie skalarne i wektorowe lub macierzowe
*ð programowanie zdarzeniowe
*ð programowanie aspektowe
Pytania
Dyskusja
Dziękuję za uwagę!
Dr inż. Jakub Bauman
jakub.bauman@gmail.com


Wyszukiwarka

Podobne podstrony:
file8 1

więcej podobnych podstron