20
Programski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski zavisne (mašinski i simbolički jezik) mašinski nezavisne (jezici višeg nivoa)

Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

Embed Size (px)

Citation preview

Page 1: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

Programski jezici

Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na:

� mašinski zavisne (mašinski i simbolički jezik)

� mašinski nezavisne (jezici višeg nivoa)

Page 2: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

-- Mašinski zavisni jezici Mašinski zavisni jezici --

�� Mašinski jeziciMašinski jezici

�� Izgrađeni su nad binarnom azbukom (0,1)Izgrađeni su nad binarnom azbukom (0,1)

�� Nije potrebno prevođenje Nije potrebno prevođenje

Vezan je za konkretan računar (svaka Vezan je za konkretan računar (svaka �� Vezan je za konkretan računar (svaka Vezan je za konkretan računar (svaka familija procesora ima svoj mašinski jezik)familija procesora ima svoj mašinski jezik)

Page 3: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

-- Mašinski zavisni jezici Mašinski zavisni jezici --

�� Simbolički jeziciSimbolički jezici

�� Uvode mnemotehničke skraćenice za Uvode mnemotehničke skraćenice za operacije i simboličke oznake podatakaoperacije i simboličke oznake podataka

�� Jednoj naredbi mašinskog jezika odgovara Jednoj naredbi mašinskog jezika odgovara jedna naredba simboličkogjedna naredba simboličkogjedna naredba simboličkogjedna naredba simboličkog

Page 4: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� Program koji prevodi simbolički u mašinski jezik Program koji prevodi simbolički u mašinski jezik zove se asemblerzove se asembler..

�� Za programiranje u mašinski zavisnim jezicima Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i potrebno je dobro poznavanje načina rada i arhitekture određenog računara.arhitekture određenog računara.

Page 5: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� Program koji prevodi simbolički u mašinski jezik Program koji prevodi simbolički u mašinski jezik zove se asemblerzove se asembler..

�� Obično Obično se koriste za programiranje računara za se koriste za programiranje računara za interakciju računara sa I/O uređajima : interakciju računara sa I/O uređajima : �� štampačimaštampačima

�� skenerimaskenerimaskenerimaskenerima

�� uređajima za čuvanje podataka,...uređajima za čuvanje podataka,...

�� Njime su pisani programi poznati kao drajveri.Njime su pisani programi poznati kao drajveri.

Page 6: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

-- Jezici višeg nivoa Jezici višeg nivoa --

�� Bliži su prirodnom jeziku, čitljiviji i lakši za Bliži su prirodnom jeziku, čitljiviji i lakši za pisanje programa.pisanje programa.

�� Imaju visok stepen nezavisnosti od arhitekture Imaju visok stepen nezavisnosti od arhitekture računararačunara

Page 7: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

-- Jezici višeg nivoa Jezici višeg nivoa --

�� Bliži su prirodnom jeziku, čitljiviji i lakši za Bliži su prirodnom jeziku, čitljiviji i lakši za pisanje programa.pisanje programa.

�� Imaju visok stepen nezavisnosti od arhitekture Imaju visok stepen nezavisnosti od arhitekture računararačunara

�� Na osnovu načina prevođenja i izvršavanja dele Na osnovu načina prevođenja i izvršavanja dele �� Na osnovu načina prevođenja i izvršavanja dele Na osnovu načina prevođenja i izvršavanja dele se na :se na :

�� Kompajlerske (Algol, Fortran, Cobol, PL/I,...)Kompajlerske (Algol, Fortran, Cobol, PL/I,...)

�� Interpreterske (Lisp, Prolog, Basic,...)Interpreterske (Lisp, Prolog, Basic,...)

Page 8: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� U početku se razlikovala primena uU početku se razlikovala primena u::

�� Oblasti poslovanja Oblasti poslovanja –– karakterisao je veliki broj I/O karakterisao je veliki broj I/O podataka i relativno jednostavan opis obrade podataka i relativno jednostavan opis obrade podataka (Cobol)podataka (Cobol)

�� Nauci i tehnici Nauci i tehnici –– karakterisao je mali broj I/O karakterisao je mali broj I/O podataka, ali veoma složen opis obrade, pa su podataka, ali veoma složen opis obrade, pa su razvijani jezici za tu namenu (Fortran, Algol...)razvijani jezici za tu namenu (Fortran, Algol...)

�� VremenomVremenom se se gubi ova gubi ova podela podela i savremeni programski i savremeni programski jezici jezici mogu se koristiti mogu se koristiti ravnopravno ravnopravno u ovim oblastima.u ovim oblastima.

Page 9: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

PREMA NAPREMA NAČINU REŠAVANJA PROBLEMAČINU REŠAVANJA PROBLEMA�� ProceduralneProceduralne –– dajemo računaru kompletan skup dajemo računaru kompletan skup

instrukcija kojim se rešava problem, tj. dajemo mu algoritam instrukcija kojim se rešava problem, tj. dajemo mu algoritam za rešavanje zadatka (pa se zovu i algoritamski). Tu za rešavanje zadatka (pa se zovu i algoritamski). Tu spadaju: spadaju: Pascal, Cobol, C, Basic, Fortran, mašinski,...Pascal, Cobol, C, Basic, Fortran, mašinski,...

�� DeklarativneDeklarativne –– opisujemo šta znamo o problemu i šta opisujemo šta znamo o problemu i šta želimo da dobijemo rešavajući ga, a sistem (interpreter) sam želimo da dobijemo rešavajući ga, a sistem (interpreter) sam dolazi do postupka za rešavanje problema. Primeri dolazi do postupka za rešavanje problema. Primeri dolazi do postupka za rešavanje problema. Primeri dolazi do postupka za rešavanje problema. Primeri deklarativnih jezika su Prolog i SQL.deklarativnih jezika su Prolog i SQL.

Page 10: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

Na Na osnovu osnovu načina alokacije načina alokacije memorijememorije::

�� ProgramProgramskske e jezikejezike sa sa statičkom alokacijom memorije (C++, C#, Java, Pascal,...).(C++, C#, Java, Pascal,...).

�� ProgramProgramskske e jezikejezike sa sa dinamičkom alokacijom memorije (Ruby, Lisp, JavaScript i (Ruby, Lisp, JavaScript i Python)Python)..Python)Python)..

Page 11: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� Na Na sajtu sajtu www.tiobe.comwww.tiobe.com rejtinzi ovako rejtinzi ovako kategorisanih programkategorisanih programskihskih jezikajezika a u a u februarufebruaru 20201313::

�� Statički tip Statički tip 70,670,6%%

�� Dinamički tip Dinamički tip 29,429,4%%

Page 12: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� Najčešća podela programskih jezika (sa Najčešća podela programskih jezika (sa rejtingom za rejtingom za februarfebruar 202013.13. godine):godine):

�� Objektno orijentisani jezici (Objektno orijentisani jezici (60.1%)60.1%)

�� Proceduralni jezici (Proceduralni jezici (35.0%)35.0%)

�� FunkciFunkcijskijski jezici (jezici (3.3%)3.3%)�� FunkciFunkcijskijski jezici (jezici (3.3%)3.3%)

�� LogiLogički jezici (1.čki jezici (1.66%)%)

Page 13: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� U U funkcijskom programiranju funkcije se funkcije se primenjuju na argumente i vrednosti. primenjuju na argumente i vrednosti.

� Vraćene vrednosti se koriste kao argumenti za druge funkcije sa izbegavanjem pripisivanja naredbi.

� Primer je Lisp kod koga je primarna struktura sa kojom radi lista.kojom radi lista.

Page 14: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

� Proceduralni jezici su se menjali i razvijali su se menjali i razvijali tokom vremena. tokom vremena.

�� Fortran i Cobol sFortran i Cobol spadajupadaju u prvu prvee jezikjezikee višeg nivoa.višeg nivoa.

�� Oko 1960. god došlo je do velike softverske krize jer Oko 1960. god došlo je do velike softverske krize jer je naredba je naredba GO TOGO TO dovela do toga da se programi dovela do toga da se programi teško prate i imaju previše grešaka.teško prate i imaju previše grešaka.

Page 15: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

� Proceduralni jezici su se menjali i razvijali tokom su se menjali i razvijali tokom vremena. vremena.

�� DDolazi do razvoja struktuolazi do razvoja strukturriranih programskih jezika (Algol, iranih programskih jezika (Algol, Pascal,...) i “zabrane” korišćenja naredbe GO TO.Pascal,...) i “zabrane” korišćenja naredbe GO TO.

�� Sledeća faza je razvijanje modularnih programskih jezika Sledeća faza je razvijanje modularnih programskih jezika koji funkcionišu tako što razbijaju program na manje koji funkcionišu tako što razbijaju program na manje celine (module) gde svaki modul obavlja određenu celine (module) gde svaki modul obavlja određenu celine (module) gde svaki modul obavlja određenu celine (module) gde svaki modul obavlja određenu funkciju.funkciju.

Page 16: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

� Objektno orijentisani jezici su jezici poslednje su jezici poslednje generacije. generacije.

�� Objekti su jedinice informacija koje sadrže Objekti su jedinice informacija koje sadrže podatke kao i metode za procesiranje i rad sa podatke kao i metode za procesiranje i rad sa podacima. podacima.

�� Da bismo koristili gotov objekat ne moramo Da bismo koristili gotov objekat ne moramo �� Da bismo koristili gotov objekat ne moramo Da bismo koristili gotov objekat ne moramo da znamo kako je on pravljen niti šta je u da znamo kako je on pravljen niti šta je u njemu, već samo kako i šta on radi.njemu, već samo kako i šta on radi.

�� U OO jezike se ubrajaju : Java, C++, Python... U OO jezike se ubrajaju : Java, C++, Python...

Page 17: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

Logički programski jezici

�� Pripadaju klasi deklarativnih Pripadaju klasi deklarativnih (neproceduralnih) programskih jezika.(neproceduralnih) programskih jezika.

�� Zasnovani su na predikatima (logičkim Zasnovani su na predikatima (logičkim izrazima).izrazima).izrazima).izrazima).

Logički jezici:Logički jezici:

�� Prolog (PROgramming in LOGic)Prolog (PROgramming in LOGic)

�� DatalogDatalog

Page 18: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski

�� Razvoj programskih jezika je veoma brz.Razvoj programskih jezika je veoma brz.

�� PosebnoPosebno je je uslovljenuslovljen razvojem hardvera i razvojem hardvera i komunikacija.komunikacija.

�� Sve Sve navedenenavedene podelepodele nisu striktne, nisu striktne, jerjerrazvojemrazvojem nekineki programskiprogramski jezikjezik momože da že da preuzme dobra rešenja iz drugih jezika, a preuzme dobra rešenja iz drugih jezika, a preuzme dobra rešenja iz drugih jezika, a preuzme dobra rešenja iz drugih jezika, a koja su se pokazala korisnim.koja su se pokazala korisnim.

Page 19: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski
Page 20: Po stepenu zavisnosti programskog jezika od računara ... · PDF fileProgramski jezici Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na: mašinski