Programski jezici
-
Upload
damjan-pavlica -
Category
Software
-
view
95 -
download
4
Transcript of Programski jezici
Programski Programski jezicijezici
proleće/leto 2008
Pregled programskih Pregled programskih jezikajezika
Jezik služi za komunikaciju između entiteta
Pomoću jezika se predstavljaju i prenose informacije
Podela jezika:◦Prirodni jezici◦Veštački jezici
Dejan Živković Programski jezici 2
Pregled Pregled programskih jezikaprogramskih jezika str2str2
Prirodni jezik se koristi za komunikaciju između ljudi u govornoj ili pisanoj formi
Programski jezik je veštački jezik Programski jezik služi za
komunikaciju između čoveka i računara. (Ponekad se koristi i za komunikaciju između ljudi!)
Dejan Živković Programski jezici 3
Pregled Pregled programskih jezikaprogramskih jezika str3str3
Programski jezik služi za opis programa, a preko programa se obavlja komunikacija između čoveka i računara
Programski jezici su jednoznačni (za razliku od prirodnih koji mogu biti dvosmisleni)
Poželjne osobine programskih jezika su: jednostavnost, izražajnost, rasprostranjenost, efikasnost, …
Dejan Živković Programski jezici 4
Pregled Pregled programskih jezikaprogramskih jezika str4str4
Sintaksa — skup pravila za određivanje pravilnih konstrukcija jezika
Semantika — određuje značenje sintaksno-ispravnih konstrukcija jezika
Dejan Živković Programski jezici 5
Pregled Pregled programskih jezikaprogramskih jezika str5str5
Nekoliko hiljada programskih jezika do sada
Kriterijumi za klasifikaciju programskih jezika:
◦ Stepen zavisnosti od računara◦ Vreme nastanka◦ Oblast primene◦ Način rešavanja problema
Dejan Živković Programski jezici 6
Klasifikacija prema Klasifikacija prema stepenu zavisnosti od stepenu zavisnosti od računararačunara
Dejan Živković Programski jezici 7
Programski jezici (PJ)
Mašinski zavisni PJ Mašinski nezavisni PJ (Viši PJ)
Mašinski jeziciProceduralno orijentisani PJ
Problemski orijentisani PJSimbolički (asemblerski) PJ
Klasifikacija prema Klasifikacija prema vremenu nastankavremenu nastanka
Dejan Živković Programski jezici 8
Programski jezici
I generacija
Mašinski i asemblerski PJ
II generacija
FORTRAN, COBOL,LISP,BASIC, PL/1, ...
III generacija
Pascal, C, PROLOG, Smalltalk, C++, Java, …
IV generacija
SQL, VisualBasic, …
Klasifikacija prema Klasifikacija prema oblasti primeneoblasti primene
Dejan Živković Programski jezici 9
Programski jezici
Učenje progra-miranja
Pascal, Basic, Logo, …
Razvoj sistem. softvera
C,Modula 2,
Asembler, …
Poslovne primene
COBOL,SQL,RPG , …
Internet
Java, JavaScript, Perl, …
Tehničke primene
FORTRAN,
Algol,APL, …
Klasifikacija prema Klasifikacija prema načinu rešavanja načinu rešavanja problemaproblema
Dejan Živković Programski jezici 10
Programski jezici (PJ)
Proceduralni PJ Neproceduralni PJ
Imperativni PJ
Strukturirani PJ
Objektno orijentisani PJ
Deskriptivni PJ
Funkcionalni PJ
Logički PJ
Razvojno stablo Razvojno stablo programskih jezikaprogramskih jezika
Vreme nastanka pojedinih programskih jezika, kao i međusobni uticaji
Posebno su istaknuti (na narednom slajdu) najznačajniji programski jezici
Dejan Živković Programski jezici 11
stablostablo
Dejan Živković Programski jezici 12
LISP (58-60)Fortran II
60
70
80
90
Planer (66)
MAC LISP (68)
Scheme (75)InterLISP (75)
Common LISP (85)
Fortran IV
Fortran 66
Fortran 77
Fortran 90
Basic
CobolAlgol 60
PascalC
C++
Java
Smalltalk
Pl/I
Modula 2
Oberon
Ada
Prolog
CPL
Simula 67
Visual C++
Visual BASIC
Telos
Euclid
54-56 FORTRAN
00
FP (78)
Miranda (86)
Haskell (88)
ISWIM (66)
Fortran 2000
Prevođenje Prevođenje programskih jezikaprogramskih jezika
Računari mogu da izvršavaju jedino programe na mašinskom jeziku
Mašinski jezik je izražen preko binarne azbuke, tj. izvršni program je zapisan pomoću simbola 0 i 1
Ako je program napisan na nekom višem jeziku (kao što je Java), mora se izvršiti prevođenje na mašinski jezik
Dejan Živković Programski jezici 13
Prevođenje Prevođenje programskih jezikaprogramskih jezika str2str2
Dejan Živković Programski jezici 14
public class Zdravo { public static void main
(String[] args) { System.out.println("Zdravo!"); }}
1001000001010100101010100011111000100101010101000001001100101010101011111001010101010101010001101010101010100000101
izvorni program izvršni program
Prevođenje programskih Prevođenje programskih jezikajezika str3str3
Mašinski jezik je nepogodan za čovekaPrevođenje na mašinski jezik obavljaju
specijalni programiPrevođenje sa mašinski orijentisanih jezika
na mašinski jezik obavljaju asembleriPrevođenje sa viših programskih jezika na
mašinski jezik obavljaju prevodioci (kompajleri) i interpretatori
Dejan Živković Programski jezici 15
Prevođenje Prevođenje mašinski mašinski orijentisanih jezikaorijentisanih jezika
Proces prevođenja sa mašinski orijentisanih jezika na mašinski jezik, koji obavljaju asembleri, naziva se asembliranje
Asembleri prevode izvorni program na mašinski orijentisanom jeziku u međuoblik koji se naziva objektni program
Povezivači povezuju objektni program i odgovarajuće rutine niskog nivoa u izvršni program
Dejan Živković Programski jezici 16
AsembliranjeAsembliranje
Dejan Živković Programski jezici 17
Izvorni program Objektni programAsembler Izvršni programPovezivač
Izveštaj o greškama
Izveštaj o greškama
Prevođenje viših Prevođenje viših programskih jezikaprogramskih jezika
Dva načina za prevođenje izvornih programa sa viših programskih jezika na mašinski jezik:
◦Kompajliranje◦Interpretiranje
Dejan Živković Programski jezici 18
Prevođenje viših Prevođenje viših programskih jezikaprogramskih jezika str2str2
Kompajliranje programa ako su prevođenje programa i izvršavanje programa vremenski odvojeni procesi
Kompajliranje izvode programi koji se nazivaju prevodioci (kompajleri)
Dejan Živković Programski jezici 19
Prevođenje viših Prevođenje viših programskih jezikaprogramskih jezika str3str3
Dejan Živković Programski jezici 20
Izve{taj o gre{kama
Izvorni program Objektni programKompajler
Izveštaj o greškama
Kompajliranje programa
Izvršni programPovezivač
Izveštaj o greškama
Prevođenje viših Prevođenje viših programskih jezikaprogramskih jezika str4str4
Interpretiranje programa ako su prevođenje programa i izvršavanje programa vremenski spojeni procesi u jedan
Interpretiranje izvode programi koji se nazivaju interpretatori
Dejan Živković Programski jezici 21
Prevođenje viših Prevođenje viših programskih jezikaprogramskih jezika str5str5
Dejan Živković Programski jezici 22
Izvorni program Interpretator
Izveštaj o greškama
Ulazni podaci
Rezultati programa
Interpretiranje programa
Struktura Struktura kompajlerakompajlera
Dejan Živković Programski jezici 23
Leksički analizator
Sintaksni analizator
Semantički analizator
Generator međukoda
Optimizator međukoda
Generator koda
Rukovalac tabelama Obrađivač
grešaka
Izvorni program
Prevedeni program
Kompajler
Struktura Struktura interpretatorainterpretatora
Dejan Živković Programski jezici 24
Izvorni program
Ulazni podaci
Rezultati programa
Pripremni blok
Izvršni blok
Obrada nar. Obrada izlaza … Obrada ulaza
Upravljački blok
Izveštaj o greškama
Interpretator
Integrisana radna Integrisana radna okruženjaokruženja
Za mnoge programske jezike postoje kompajleri i interpretatori
Neki programski jezici (Java) su kompajlersko-interpretatorskog tipa
Proizvođači softvera obezbeđuju grafičko radno okruženje koje sadrži niz razvojnih softverskih alata (kompajleri, interpretatori, editori, debageri, ...)
Dejan Živković Programski jezici 25