2010-05-17
Języki programowania
Język
lð zbór znaków i symboli oraz reguÅ‚
określających sposoby i kolejność ich
użycia
lð JÄ™zyk algorytmiczny jÄ™zyk, który jest
stosowany do zapisywania algorytmów.
lð JÄ™zyk programowania jÄ™zyk
algorytmiczny stosowany do celów
programowania.
1
2010-05-17
Język programowania
lð zbiór zasad skÅ‚adni oraz instrukcji, dziÄ™ki
którym programista tworzy kod zródłowy
programu.
lð Programista używa jÄ™zyka programowania
zrozumiałego dla człowieka, który jest
tłumaczony do postaci kodu maszynowego.
lð Procesor wykonuje program zapisany w
kodzie maszynowym.
Przykład programu w języku C
2
2010-05-17
Kod zródłowy
lð program komputerowy napisany w jÄ™zyku
programowania.
lð postać programu, która jest zrozumiaÅ‚a dla
programisty (bez konieczności jego
uruchamiania).
lð jest przeksztaÅ‚cany na kod maszynowy w
procesie translacji (kompilacji lub
interpretacji) programu.
Kod maszynowy
lð jÄ™zyk rozumiany przez procesor.
lð Program w kodzie maszynowym skÅ‚ada siÄ™ z
ciągu wartości binarnych, które oznaczają
zarówno instrukcje jak i dane.
lð Postać kodu maszynowego zależy od
architektury procesora.
3
2010-05-17
Translacja
lð Program napisany w jÄ™zyku programowania
musi zostać przetłumaczony na kod
maszynowy, aby mógł być wykonany przez
procesor.
lð Translacja oznacza tÅ‚umaczenie programu
napisanego w języku programowania z
postaci zródłowej do postaci wynikowej
zrozumiałej dla maszyny (procesora).
Translator
lð Translator to specjalny program (lub
urzÄ…dzenie) dokonujÄ…cy translacji.
lð Translatory dzieli siÄ™ na:
lð kompilatory i interpretery tÅ‚umaczÄ…ce
programy zapisane w językach wysokiego
poziomu,
lð assemblery tÅ‚umaczÄ…ce programy zapisane
w językach symbolicznych.
.
4
2010-05-17
Kod wynikowy
lð Kod maszynowy uzyskany jako rezultat pracy
translatora (kompilatora lub interpretera),
nadający się do bezpośredniego
wykonywania przez procesor albo
wymagający dalszej obróbki (np.
konsolidacji).
lð Czasami zamiast okreÅ›lenia kod wynikowy
używa się nazwy kod obiektowy.
Translacja
5
2010-05-17
Kompilator
lð program sÅ‚użący do automatycznego
tłumaczenia kodu zródłowego w języku
programowania na kod maszynowy.
lð Niektóre kompilatory tÅ‚umaczÄ… najpierw do
języka asemblera, a ten na język maszynowy
jest tłumaczony przez asembler.
lð Stosowanie kompilatorów uÅ‚atwia
programowanie (programista nie musi znać
języka maszynowego) i pozwala na większą
przenośność kodu pomiędzy platformami.
6
2010-05-17
Interpreter
lð program, który analizuje kod zródÅ‚owy i wykonuje
przeanalizowane fragmenty (instrukcje).
lð Inaczej niż dla procesu kompilacji, podczas którego
nie wykonuje się instrukcji kodu zródłowego.
lð Wykonanie programu za pomocÄ… interpretera jest
wolniejsze, wymaga więcej zasobów systemowych
niż wykonanie kodu skompilowanego.
Etapy translacji
7
2010-05-17
Preprocesing
lð wstÄ™pne przygotowanie programu do wÅ‚aÅ›ciwej
kompilacji.
lð DoÅ‚Ä…czane sÄ… dodatkowe pliki z kodem
zródłowym.
lð Dodawane sÄ… do kodu zródÅ‚owego deklaracje
używanych funkcji i/lub informacja o
stosowanych zmiennych.
lð Tak przetworzony kod zródÅ‚owy poddawany jest
analizie składniowej i translacji.
lð Preprocesor jest najczęściej zintegrowany z
kompilatorem/interpreterem.
Translacja
lð tÅ‚umaczenie kodu zródÅ‚owego na kod
wynikowy (binarny) zrozumiały dla procesora.
8
2010-05-17
Konsolidacja
lð doÅ‚Ä…czanie bibliotek do tworzonego programu
(kodu wynikowego).
lð Jeżeli używane sÄ… funkcje z biblioteki,
niezbędne jest dołączenie biblioteki do
programu.
lð Biblioteka jest również programem , który nie
może być samodzielnie uruchomiony.
Zawiera funkcje, do których odwołują się inne
programy.
lð Po konsolidacji program jest gotowy do użycia.
Generacje języków
programowania
lð Można wyróżnić pięć wyraznie różniÄ…cych siÄ™
generacji języków programowania (1GL-5GL).
lð W miarÄ™ rozwoju techniki komputerowej,
wystąpiła konieczność dostarczania narzędzi
programistycznych, które umożliwiłyby
maksymalne wykorzystanie sprzętu.
lð Nie ma peÅ‚nej zbieżnoÅ›ci chronologicznej
między poszczególnymi generacjami języków i
sprzętu.
9
2010-05-17
1GL
lð Programowanie odbywaÅ‚o siÄ™ bezpoÅ›rednio
w kodzie binarnym (ciÄ…gi zer i jedynek).
lð Każdy typ komputera operuje wÅ‚asnym
kodem maszynowym.
lð Główna wada: programista każdorazowo
musi dostosowywać się do języka konkretnej
maszyny.
2GL
lð CiÄ…gom zerojedynkowym przypisano Å‚atwiejsze do
zrozumienia znaki mnemoniczne.
lð JÄ™zyki symboliczne, zwane też jÄ™zykami asemblera.
lð stanowiÄ… proste tÅ‚umaczenie jÄ™zyka maszynowego na
symbole,
lð sÄ… Å›ciÅ›le zwiÄ…zane z danym modelem procesora.
lð PrzykÅ‚ad:
mov dx, offset info
mov ah, 9
int 21h
mov ah, 0
int 16h
10
2010-05-17
3GL
lð JÄ™zyki wysokiego poziomu.
lð Symbole asemblera reprezentujÄ…ce konkretne
instrukcje zostały zastąpione kodem
niezwiązanym z maszyną, bardziej zbliżonym
do języka naturalnego lub matematycznego.
lð PrzykÅ‚ad:
for i:=1 to MaxN do
begin
Vx[i]:=Vx[i]+dx[i];
end;
4GL
lð JÄ™zyki programowania wraz z zestawem narzÄ™dzi,
które umożliwiają budowę prostych aplikacji przez
zestawianie prefabrykowanych modułów.
lð CzÄ™sto stanowiÄ… rozszerzenie jÄ™zyków już
istniejÄ…cych.
lð W niektórych przypadkach stosuje siÄ™ nazwÄ™ czwarta
generacja w odniesieniu do programowania
obiektowego
11
2010-05-17
Przykłady języków 4GL
lð JÄ™zyki zapytaÅ„ do baz danych
lð SQL
lð Generatory raportów / stron
lð Oracle Reports
lð Przetwarzanie danych, analiza i raportowanie
lð GraphTalk
lð Informix-4GL
lð JÄ™zyki strumienia danych
lð APE
lð AVS
lð Iris Explorer
lð Generatory formularzy
lð Oracle Forms
lð Tworzenie GUI
lð Delphi
lð Visual Basic (edycja formatek )
lð Windows Forms (część .NET)
5GL
lð jÄ™zyki używane do tworzenia programów
wykorzystujÄ…cych sztucznÄ… inteligencjÄ™,
lð systemy ekspertowe.
lð PrzykÅ‚ad: PROLOG
12
2010-05-17
Podział języków
programowania
lð PodziaÅ‚ ze wzglÄ™du na generacjÄ™ jÄ™zyka
programowania
lð PodziaÅ‚ ze wzglÄ™du na sposób translacji
lð PodziaÅ‚ ze wzglÄ™du na strukturÄ™
lð PodziaÅ‚ ze wzglÄ™du na zastosowanie
Podział JP
lð ze wzglÄ™du na rodzaj translacji:
lð kompilowane,
lð interpretowane.
13
2010-05-17
Podział JP
lð PodziaÅ‚ ze wzglÄ™du na strukturÄ™ (1):
lð jÄ™zyki proceduralne (imperatywne)
lð programista okreÅ›la JAKIE operacje maja być
wykonane i w JAKIEJ KOLEJNOÅšCI.
lð PrzykÅ‚ad: C, Pascal
lð jÄ™zyki nieproceduralne (deklaratywne)
lð programista opisuje to, CO chce wykonać. Decyzja
JAK to wykonać należy do translatora.
lð PrzykÅ‚ad: SQL
Podział JP
lð PodziaÅ‚ ze wzglÄ™du na strukturÄ™ (2):
lð jÄ™zyki strukturalne
(Fortran, Pascal, Algol)
lð jÄ™zyki zorientowane obiektowo
(C++ , Visual C++, Object Pascal, Smalltalk,
Objective-C, Eiffel , Lisp, Oberon, Actor , CLOS,
Ada95, Prolog++, Zink, JAVA, J++, Visual
Objects, Python):
14
2010-05-17
Podział JP
lð PodziaÅ‚ jÄ™zyków ze wzglÄ™du na zastosowania:
lð algorytmiczne: do zapisywania algorytmów
lð algebraiczne (Fortran, Pascal, C) - do zapisu
algorytmów numerycznego przetwarzania
informacji,
lð ekonomiczne (COBOL, PL/1) - opis algorytmów
przetwarzania informacji o charakterze
ekonomicznym, bankowym, handlowym.
lð do symbolicznego przetwarzania informacji (LISP) -
do zapisu algorytmów przetwarzania informacji
numerycznych i na danych symbolicznych.
Podział JP
lð PodziaÅ‚ jÄ™zyków ze wzglÄ™du na
zastosowania, cd:
lð jÄ™zyki symulacyjne (SIMULA) - uÅ‚atwiajÄ…
opisywanie algorytmów modelowania i symulacji
lð bezpoÅ›redniego dostÄ™pu (BASIC) - pozwalajÄ… na
konwersacjÄ™ z maszynÄ….
lð problemowe - Å›ciÅ›le dostosowane do konkretnej
klasy zadań.
15
2010-05-17
Zintegrowane środowisko
programistyczne (IDE)
lð Translator
lð Biblioteki i dodatkowe pliki wsadowe
lð Edytor kodu
lð Debugger
lð Edytor formularzy
lð Menadżer projektu
lð NarzÄ™dzia dodatkowe
lð System pomocy
Przykłady środowisk
programistycznych: Delphi
16
2010-05-17
Przykłady środowisk
programistycznych: SharpDevelop
Biblioteki i dodatkowe pliki
wsadowe
lð sÅ‚użą do rozszerzania możliwoÅ›ci jÄ™zyka,
szczególnie w zakresie pewnych zastosowań
(np. obliczeń matematycznych, numerycznych,
obróbki grafiki).
lð Biblioteki podstawowe dostarczane sÄ… wraz z
środowiskiem programistycznym, biblioteki
dodatkowe rozprowadzane sÄ… w postaci
osobnych pakietów.
17
2010-05-17
Edytor kodu
lð sÅ‚uży do pisania tekstu kodu zródÅ‚owego.
lð Poprawia znacznie przejrzystość i wygodÄ™ tworzenia
kodu.
lð Edytory mogÄ… być uniwersalne lub zintegrowane z
konkretną implementacją języka.
lð Edytory uniwersalne pozwalajÄ… na podÅ‚Ä…czanie
kompilatorów jednego lub wielu języków i są
rozprowadzane jako oddzielne programy.
Edytor kodu
lð sÅ‚uży do pisania tekstu kodu zródÅ‚owego.
lð Poprawia znacznie przejrzystość i wygodÄ™ tworzenia
kodu.
lð Edytory mogÄ… być uniwersalne lub zintegrowane z
konkretną implementacją języka.
lð Edytory uniwersalne pozwalajÄ… na podÅ‚Ä…czanie
kompilatorów jednego lub wielu języków i są
rozprowadzane jako oddzielne programy.
18
2010-05-17
Debugger
lð sÅ‚uży do analizy poprawnoÅ›ci tworzonego kodu
zródłowego
lð stanowi zazwyczaj integralnÄ… część translatora
lð Podczas analizy kodu zródÅ‚owego generowane sÄ…
informacje o błędach na bieżąco (analizator
zatrzymuje się w miejscu wykrycia błędu) lub też w
postaci końcowego raportu.
lð Oprócz informacji o bÅ‚Ä™dach, analizatory podajÄ…
również tzw. ostrzeżenia, tzn. informacje o znalezieniu
niejasności w kodzie lub o wykryciu miejsca
potencjalnie niebezpiecznego.
Debugger
19
2010-05-17
Edytor formularzy
lð sÅ‚uży do budowy okien widzianych przez
użytkownika po uruchomieniu programu
(formularzy).
lð ZaletÄ… stosowania tego narzÄ™dzia jest Å‚atwość
tworzenia dowolnie skomplikowanych okien i
określania ich właściwości.
lð Brak edytora formularzy nie przesÄ…dza o tym,
że nie można tworzyć standardowych,
okienkowych aplikacji wyglÄ…d definiowany
jest wówczas przez programistę w kodzie
zródłowym.
Edytor formularzy
20
2010-05-17
Menadżer projektu
lð sÅ‚uży do zarzÄ…dzania moduÅ‚ami i plikami projektu.
lð Do kompilacji programu zwykle potrzebnych jest wiele plików,
które zawierają:
lð poszczególne moduÅ‚y kodu,
lð biblioteki,
lð pliki wsadowe,
lð grafikÄ™ i pliki multimedialne.
lð Zazwyczaj istnieje główny plik projektu zawierajÄ…cy wszystkie
potrzebne do kompilacji informacje.
lð Z pomocÄ… menadżera Å‚atwo można modyfikować zawartość i
strukturÄ™ projektu.
Narzędzia dodatkowe
lð sÅ‚użą do tworzenia:
lð systemu pomocy,
lð ikon i kursorów,
lð programów instalacyjnych,
lð itp.
21
2010-05-17
Narzędzia dodatkowe
System pomocy
lð sÅ‚uży do uzyskiwania informacji o:
lð Å›rodowisku programistycznym,
lð zasadach jego użytkowania,
lð elementach jÄ™zyka wraz z przykÅ‚adami,
lð rodzaju licencji, autorach i kontaktach.
lð Dobrze zorganizowanie, obszerne systemy pomocy
zawierają często kompendium wiedzy na temat
danego języka programowania.
22
2010-05-17
System pomocy
Programowanie
lð PodejÅ›cie strukturalne
lð PodejÅ›cie obiektowe
23
2010-05-17
Podejście strukturalne
lð Algorytmy + struktury danych = programy
lð PodziaÅ‚ algorytmu na operacje realizowane
za pomocą odrębnych procedur
lð Dane i procedury nie sÄ… ze sobÄ… Å›ciÅ›le
zwiÄ…zane.
Podejście obiektowe
lð Obiekty - elementy Å‚Ä…czÄ…ce stan (czyli dane) i
zachowanie (czyli procedury, tu: metody).
lð Algorytm wyrażony jest jako zbiór obiektów,
komunikujących się pomiędzy sobą w celu
wykonywania zadań.
24
2010-05-17
Klasa
lð Klasa to w programowaniu obiektowym
lð częściowa lub caÅ‚kowita definicja obiektów
mających wspólną strukturę i zachowanie
lð może także oznaczać zbiór wszystkich obiektów
tego samego typu
Modelowanie obiektów
rzeczywistych
25
2010-05-17
Klasa - przykład
nazwa klasy
pola
metody
Obiekt
lð Jest egzemplarzem danej klasy
lð Ma stan pamiÄ™tany w polach
lð Ma okreÅ›lony zbiór operacji (metod)
lð Jest odróżnialny od innych obiektów
26
2010-05-17
Klasa i obiekty
lð Klasa Samochód
lð Obiekty klasy Samochód
Hermetyzacja (enkapsulacja)
lð ochrona przed bezpoÅ›rednim dostÄ™pem do
danych zawartych w obiekcie.
lð Do danych umieszczonych w obiektach danej
klasy należy się odwołać jedynie za
pośrednictwem metod tej klasy.
lð DostÄ™p do skÅ‚adowych klasy można
ograniczać specyfikatorami dostępu: private,
protected, public
27
2010-05-17
Hermetyzacja (enkapsulacja)
C zęść publiczna
klasy/obiektu - m etody
C zęść pryw atna
i chroniona
klasy/obiektu -
dane i m etody
Dziedziczenie
lð Utworzenie nowej klasy na podstawie już
istniejÄ…cej, poprzez
lð dodanie nowych pól i metod,
lð lub zmianÄ™ implementacji już istniejÄ…cych metod.
lð zwiÄ…zek miÄ™dzy elementem ogólnym
(zwanym nadklasÄ… lub przodkiem)
a pewnym specyficznym jego rodzajem
(zwanym podklasÄ… lub potomkiem).
28
2010-05-17
Dziedziczenie (generalizacja)
Pojazd
Dziedziczenie
29
2010-05-17
Polimorfizm
lð JeÅ›li obiekt należy do pewnej klasy K,
to należy również do wszystkich nadklas
klasy K
Programowanie
30
Wyszukiwarka
Podobne podstrony:
11 Jezyki programowania Historia Przykładyid434rucki,języki programowania, język CJęzyki programowaniaJęzyki programowania wykładyInformatyka jezyki programowania Wyklad59 Języki świata bez odpowiedzizestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6Międzynarodowy Program Badań nad Zachowaniami SamobójczymiCSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)Instrukcja Programowania Zelio Logic 2 wersja polskaProgram wykładu Fizyka II 14 15roprm ćwiczenie 6 PROGRAMOWANIE ROBOTA Z UWZGLĘDNIENIEM ANALIZY OBRAZU ARLANGwięcej podobnych podstron