jezyki programowania

background image

2010-05-17

1

Języki programowania

Język

zbór znaków i symboli oraz reguł
określających sposoby i kolejność ich
użycia

Język algorytmiczny – język, który jest
stosowany do zapisywania algorytmów.

Język programowania – język
algorytmiczny stosowany do celów
programowania.

background image

2010-05-17

2

Język programowania

zbiór zasad składni oraz instrukcji, dzięki
którym programista tworzy kod źródłowy
programu.

Programista używa języka programowania
zrozumiałego dla człowieka, który jest
tłumaczony do postaci kodu maszynowego.

Procesor wykonuje program zapisany w
kodzie maszynowym.

Przykład programu w języku C

background image

2010-05-17

3

Kod źródłowy

program komputerowy napisany w języku
programowania.

postać programu, która jest zrozumiała dla
programisty (bez konieczności jego
uruchamiania).

jest przekształcany na kod maszynowy w
procesie translacji (kompilacji lub
interpretacji) programu.

Kod maszynowy

język rozumiany przez procesor.

Program w kodzie maszynowym składa się z
ciągu wartości binarnych, które oznaczają
zarówno instrukcje jak i dane.

Postać kodu maszynowego zależy od
architektury procesora.

background image

2010-05-17

4

Translacja

Program napisany w języku programowania
musi zostać przetłumaczony na kod
maszynowy, aby mógł być wykonany przez
procesor.

Translacja oznacza tłumaczenie programu
napisanego w języku programowania z
postaci źródłowej do postaci wynikowej
zrozumiałej dla maszyny (procesora).

Translator

Translator to specjalny program (lub
urządzenie) dokonujący translacji.

Translatory dzieli się na:

kompilatory i interpretery tłumaczące
programy zapisane w językach wysokiego
poziomu,

assemblery tłumaczące programy zapisane
w językach symbolicznych.

.

background image

2010-05-17

5

Kod wynikowy

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).

Czasami zamiast określenia kod wynikowy
używa się nazwy kod obiektowy.

Translacja

background image

2010-05-17

6

Kompilator

program służący do automatycznego

tłumaczenia kodu źródłowego w języku
programowania na kod maszynowy.

Niektóre kompilatory tłumaczą najpierw do

języka asemblera, a ten na język maszynowy

jest tłumaczony przez asembler.

Stosowanie kompilatorów ułatwia

programowanie (programista nie musi znać

języka maszynowego) i pozwala na większą

przenośność kodu pomiędzy platformami.

background image

2010-05-17

7

Interpreter

program, który analizuje kod źródłowy i wykonuje
przeanalizowane fragmenty (instrukcje).

Inaczej niż dla procesu kompilacji, podczas którego
nie wykonuje się instrukcji kodu źródłowego.

Wykonanie programu za pomocą interpretera jest
wolniejsze, wymaga więcej zasobów systemowych
niż wykonanie kodu skompilowanego.

Etapy translacji

background image

2010-05-17

8

Preprocesing

wstępne przygotowanie programu do właściwej
kompilacji.

Dołączane są dodatkowe pliki z kodem

źródłowym.

Dodawane są do kodu źródłowego deklaracje

używanych funkcji i/lub informacja o
stosowanych zmiennych.

Tak przetworzony kod źródłowy poddawany jest

analizie składniowej i translacji.

Preprocesor jest najczęściej zintegrowany z
kompilatorem/interpreterem

.

Translacja

tłumaczenie kodu źródłowego na kod
wynikowy (binarny) zrozumiały dla procesora.

background image

2010-05-17

9

Konsolidacja

dołączanie bibliotek do tworzonego programu
(kodu wynikowego).

Jeżeli używane są funkcje z biblioteki,

niezbędne jest dołączenie biblioteki do
programu.

Biblioteka jest również „programem”, który nie

może być samodzielnie uruchomiony.

Zawiera funkcje, do których odwołują się inne
programy.

Po konsolidacji program jest gotowy do użycia.

Generacje

języków

programowania

Można wyróżnić pięć wyraźnie różniących się
generacji języków programowania (1GL-5GL).

W miarę rozwoju techniki komputerowej,
wystąpiła konieczność dostarczania narzędzi
programistycznych, które umożliwiłyby
maksymalne wykorzystanie sprzętu.

Nie ma pełnej zbieżności chronologicznej
między poszczególnymi generacjami języków i
sprzętu.

background image

2010-05-17

10

1GL

Programowanie odbywało się bezpośrednio
w kodzie binarnym (ciągi zer i jedynek).

Każdy typ komputera operuje własnym
kodem maszynowym.

Główna wada: programista każdorazowo
musi dostosowywać się do języka konkretnej
maszyny.

2GL

Ciągom zerojedynkowym przypisano łatwiejsze do
zrozumienia znaki mnemoniczne.

Języki symboliczne, zwane też językami asemblera.

stanowią proste tłumaczenie języka maszynowego na
symbole,

są ściśle związane z danym modelem procesora.

Przykład:

mov dx, offset info
mov ah, 9
int 21h
mov ah, 0
int 16h

background image

2010-05-17

11

3GL

Języki wysokiego poziomu.

Symbole asemblera reprezentujące konkretne

instrukcje zostały zastąpione kodem

niezwiązanym z maszyną, bardziej zbliżonym

do języka naturalnego lub matematycznego.

Przykład:

for i:=1 to MaxN do
begin

Vx[i]:=Vx[i]+dx[i];

end;

4GL

Języki programowania wraz z zestawem narzędzi,

które umożliwiają budowę prostych aplikacji przez

zestawianie „prefabrykowanych” modułów.

Często stanowią rozszerzenie języków już

istniejących.

W niektórych przypadkach stosuje się nazwę „czwarta

generacja” w odniesieniu do programowania
obiektowego

background image

2010-05-17

12

Przykłady języków 4GL

Języki zapytań do baz danych

SQL

Generatory raportów / stron

Oracle Reports

Przetwarzanie danych, analiza i raportowanie

GraphTalk

Informix-4GL

Języki strumienia danych

APE

AVS

Iris Explorer

Generatory formularzy

Oracle Forms

Tworzenie GUI

Delphi

Visual Basic (edycja formatek )

Windows Forms (część .NET)

5GL

języki używane do tworzenia programów
wykorzystujących sztuczną inteligencję,

systemy ekspertowe.

Przykład: PROLOG

background image

2010-05-17

13

Podział języków
programowania

Podział ze względu na generację języka
programowania

Podział ze względu na sposób translacji

Podział ze względu na strukturę

Podział ze względu na zastosowanie

Podział JP

ze względu na rodzaj translacji:

kompilowane,

interpretowane.

background image

2010-05-17

14

Podział JP

Podział ze względu na strukturę (1):

języki proceduralne (imperatywne)

programista określa JAKIE operacje maja być
wykonane i w JAKIEJ KOLEJNOŚCI.

Przykład: C, Pascal

języki nieproceduralne (deklaratywne)

programista opisuje to, CO chce wykonać. Decyzja

JAK to wykonać należy do translatora.

Przykład: SQL

Podział JP

Podział ze względu na strukturę (2):

języki strukturalne
(Fortran, Pascal, Algol)

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):

background image

2010-05-17

15

Podział JP

Podział języków ze względu na zastosowania:

algorytmiczne: do zapisywania algorytmów

algebraiczne (Fortran, Pascal, C) - do zapisu

algorytmów numerycznego przetwarzania
informacji,

ekonomiczne (COBOL, PL/1) -

opis algorytmów

przetwarzania informacji o charakterze
ekonomicznym, bankowym, handlowym.

do symbolicznego przetwarzania informacji (LISP) -

do zapisu algorytmów przetwarzania informacji
numerycznych i na danych symbolicznych.

Podział JP

Podział języków ze względu na
zastosowania, cd:

języki symulacyjne (SIMULA) - ułatwiają
opisywanie algorytmów modelowania i symulacji

bezpośredniego dostępu (BASIC) - pozwalają na

konwersację z maszyną.

problemowe -

ściśle dostosowane do konkretnej

klasy zadań.

background image

2010-05-17

16

Zintegrowane środowisko
programistyczne (IDE)

Translator

Biblioteki i dodatkowe pliki wsadowe

Edytor kodu

Debugger

Edytor formularzy

Menadżer projektu

Narzędzia dodatkowe

System pomocy

Przykłady środowisk
programistycznych: Delphi

background image

2010-05-17

17

Przykłady środowisk
programistycznych: SharpDevelop

Biblioteki i dodatkowe pliki
wsadowe

służą do rozszerzania możliwości języka,

szczególnie w zakresie pewnych zastosowań

(np. obliczeń matematycznych, numerycznych,

obróbki grafiki).

Biblioteki podstawowe dostarczane są wraz z

środowiskiem programistycznym, biblioteki

dodatkowe rozprowadzane są w postaci

osobnych pakietów.

background image

2010-05-17

18

Edytor kodu

służy do pisania tekstu kodu źródłowego.

Poprawia znacznie przejrzystość i wygodę tworzenia
kodu.

Edytory mogą być uniwersalne lub zintegrowane z

konkretną implementacją języka.

Edytory uniwersalne pozwalają na podłączanie

kompilatorów jednego lub wielu języków i są
rozprowadzane jako oddzielne programy.

Edytor kodu

służy do pisania tekstu kodu źródłowego.

Poprawia znacznie przejrzystość i wygodę tworzenia
kodu.

Edytory mogą być uniwersalne lub zintegrowane z

konkretną implementacją języka.

Edytory uniwersalne pozwalają na podłączanie

kompilatorów jednego lub wielu języków i są
rozprowadzane jako oddzielne programy.

background image

2010-05-17

19

Debugger

służy do analizy poprawności tworzonego kodu

źródłowego

stanowi zazwyczaj integralną część translatora

Podczas analizy kodu źró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.

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

background image

2010-05-17

20

Edytor formularzy

służy do budowy okien widzianych przez

użytkownika po uruchomieniu programu
(formularzy).

Zaletą stosowania tego narzędzia jest łatwość
tworzenia dowolnie skomplikowanych okien i

określania ich właściwości.

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

źródłowym.

Edytor formularzy

background image

2010-05-17

21

Menadżer projektu

służy do zarządzania modułami i plikami projektu.

Do kompilacji programu zwykle potrzebnych jest wiele plików,

które zawierają:

poszczególne moduły kodu,

biblioteki,

pliki wsadowe,

grafikę i pliki multimedialne.

Zazwyczaj istnieje główny plik projektu zawierający wszystkie
potrzebne do kompilacji informacje.

Z pomocą menadżera łatwo można modyfikować zawartość i

strukturę projektu.

Narzędzia dodatkowe

służą do tworzenia:

systemu pomocy,

ikon i kursorów,

programów instalacyjnych,

itp.

background image

2010-05-17

22

Narzędzia dodatkowe

System pomocy

służy do uzyskiwania informacji o:

środowisku programistycznym,

zasadach jego użytkowania,

elementach języka wraz z przykładami,

rodzaju licencji, autorach i kontaktach.

Dobrze zorganizowanie, obszerne systemy pomocy

zawierają często kompendium wiedzy na temat

danego języka programowania.

background image

2010-05-17

23

System pomocy

Programowanie

Podejście strukturalne

Podejście obiektowe

background image

2010-05-17

24

Podejście strukturalne

Algorytmy + struktury danych = programy

Podział algorytmu na operacje realizowane
za pomocą odrębnych procedur

Dane i procedury nie są ze sobą ściśle
związane.

Podejście obiektowe

Obiekty -

elementy łączące stan (czyli dane) i

zachowanie (czyli procedury, tu: metody).

Algorytm wyrażony jest jako zbiór obiektów,
komunikujących się pomiędzy sobą w celu
wykonywania zadań.

background image

2010-05-17

25

Klasa

Klasa to w programowaniu obiektowym

częściowa lub całkowita definicja obiektów
mających wspólną strukturę i zachowanie

może także oznaczać zbiór wszystkich obiektów
tego samego typu

Modelowanie obiektów
rzeczywistych

background image

2010-05-17

26

Klasa -

przykład

nazwa klasy

pola

metody

Obiekt

Jest egzemplarzem danej klasy

Ma stan pamiętany w polach

Ma określony zbiór operacji (metod)

Jest odróżnialny od innych obiektów

background image

2010-05-17

27

Klasa i obiekty

Klasa Samochód

Obiekty klasy Samochód

Hermetyzacja (enkapsulacja)

ochrona przed bezpośrednim dostępem do
danych zawartych w obiekcie.

Do danych umieszczonych w obiektach danej
klasy należy się odwołać jedynie za
pośrednictwem metod tej klasy.

Dostęp do składowych klasy można
ograniczać specyfikatorami dostępu: private,
protected, public

background image

2010-05-17

28

Hermetyzacja (enkapsulacja)

C zęść pryw atna

i chroniona

klasy/obiektu -

dane i m etody

C zęść publiczna

klasy/obiektu - m etody

Dziedziczenie

Utworzenie nowej klasy na podstawie już
istniejącej, poprzez

dodanie nowych pól i metod,

lub zmianę implementacji już istniejących metod.

związek między elementem ogólnym
(zwanym nadklasą lub przodkiem)
a pewnym specyficznym jego rodzajem
(zwanym podklasą lub potomkiem).

background image

2010-05-17

29

Dziedziczenie (generalizacja)

Pojazd

Dziedziczenie

background image

2010-05-17

30

Polimorfizm

Jeśli obiekt należy do pewnej klasy K,
to należy również do wszystkich nadklas
klasy K

Programowanie


Wyszukiwarka

Podobne podstrony:
31 Jezyki programowania
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Języki programowania zaliczenie wykłady Języki programowania3
Języki programowania zaliczenie wykłady Wykład 5
Języki programowania wykłady
Algorytmy i jezyki programowania(4)
4 jezyki programowania 3
Języki programowania i ich klasyfikacja
zestawy-labC++-kolokwium 2 2006-2007, Politechnika Śląska MT MiBM, Semestr III, Języki programowania
OPRACOWANIE 3 rok + moje, MECHATRONIKA, IV Semestr, Języki programowania
11 Jezyki programowania Histor Nieznany
Języki programowania wykłady
Języki programowania zaliczenie wykłady Opracowanie1 2
Prezentacja Języki programowania sterowników PLC
Języki programowania, ściągi
Języki programowania
pytania z wykładu sciaga jezyki programowania

więcej podobnych podstron