dizajnprogramskihjezika - · pdf filepascalic,objektno-orijentisanojparadigmipripadajusimula,...

75
Dizajn programskih jezika Odnos programskih jezika i programskih paradigmi Milena Vujoˇ sevi´ c Janiˇ ci´ c www.matf.bg.ac.rs/~milena Matematiˇ cki fakultet, Univerzitet u Beogradu

Upload: phunganh

Post on 05-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

Dizajn programskih jezika— Odnos programskih jezika i programskih paradigmi —

Milena Vujosevic Janicic

www.matf.bg.ac.rs/~milena

Matematicki fakultet, Univerzitet u Beogradu

Page 2: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Pregled

1 Uvod

2 Razvoj jezika i paradigmi

3 Osnovne paradigme

4 Dodatne paradigme

5 Literatura

Milena Vujosevic Janicic Dizajn programskih jezika

Page 3: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Pregled

1 UvodProgramski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

2 Razvoj jezika i paradigmi

3 Osnovne paradigme

4 Dodatne paradigme

5 Literatura Milena Vujosevic Janicic Dizajn programskih jezika

Page 4: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Jezici i programski jezici

Jezik je skup pravila za komunikaciju izmedu subjekata.Pomocu jezika se predstavljaju i prenose informacije.Prirodni jezik se koristi za komunikaciju izmedu ljudi ugovornoj ili pisanoj formi.Programski jezik se koristi ...?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 5: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Jezici i programski jezici

Programski jezik sluzi, prvenstveno, za komunikaciju izmeducoveka i racunara, ali moze da se koristi i za komunikacijuizmedu masina, kao i za komunikaciju izmedu ljudiProgramski jezici se mogu deliti na razne nacineJedna podela je na masinski zavisne i masinski nezavisne, i nadalje ce uglavnom biti reci o masinski nezavisnim (visim)programskim jezicimaPostoje razne definicije programskih jezika.Kako biste Vi definisali programski jezik?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 6: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Programski jezici — definicije

Programski jezik je jezik konstruisan formalno da bi seomogucilo zadavanje instrukcija masinama, posebnoracunarima. (wikipedia)Programski jezik je jezik za pisanje programa koje racunar znai moze izvrsiti.Programski jezik je vestacki jezik koji sluzi za opis racunarskihprograma.Programski jezik je vestacki jezik za opis konstrukcija (pisanjeinstrukcija) koje mogu biti prevedene u masinaki jezik iizvrsene od strane racunara. (American Heritage Dictionary )

Milena Vujosevic Janicic Dizajn programskih jezika

Page 7: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Programski jezici — definicije

Programski jezik je skup sintaktickih i semantickih pravila kojise koriste za opis (definiciju) racunarskih programa.Programski jezik je notacioni sistem citljiv za racunare i ljude,a sluzi za opis poslova koje treba da obavi racunar.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 8: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Koliko programskih jezika postoji?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 9: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Koliko programskih jezika postoji?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 10: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Koliko programskih jezika postoji?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 11: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Koliko programskih jezika postoji?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 12: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Programski jezici

Postoji veliki broj programskih jezika (broji se u hiljadama)Enciklopedija britanika pominje preko 2000Drugi izvori pominju preko 2500 dokumentovanih programskihjezika (Bill Kinnersley)„Encyclopedia of Computer Languages”, autor DiarmuidPigott, sa Murdoch Univerziteta iz Australije navodi preko8,000 jezika.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 13: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Programski jezici

Naravno, nisu svi programski jezici jednako vazni i zastupljeniListe programskih jezika

http://en.wikipedia.org/wiki/List_of_programming_languageshttp://en.wikipedia.org/wiki/List_of_BASIC_dialectshttp://people.ku.edu/~nkinners/LangList/Extras/langlist.htm

Nemoguce je prouciti sve programske jezike

Milena Vujosevic Janicic Dizajn programskih jezika

Page 14: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Paradigma — znacenje

Rec paradigma je grckog porekla i znaciprimer za ugled,uzoruzorakobrazacsablon

Obicno se koristi da oznaci vrstu objekata koji imaju zajednickekarakteristike

Milena Vujosevic Janicic Dizajn programskih jezika

Page 15: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Programska paradigma

Programski obrazac, programski stil, programski sablon, nacinprogramiranjaFundamentalni stil programiranjaKlasifikacija medusobno slicnih programskih jezika

Milena Vujosevic Janicic Dizajn programskih jezika

Page 16: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Uloga programskih paradigmi

Broj programskih paradigmi nije tako veliki kao brojprogramskih jezikaIzucavanjem programskih paradigmi upoznaju se globalnasvojsta jezika koji pripadaju toj paradigmiInformacija da neki jezik pripada nekoj paradigmi nam govori oosnovnim svojstvima i mogucnostima jezikaPoznavanje odredene paradigme nam znacajno olaksava dasavladamo svaki programski jezik koji toj paradigmi pripada

Milena Vujosevic Janicic Dizajn programskih jezika

Page 17: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Programske paradigme su usko povezane sa programskimjezicima.Svakoj programskoj paradigmi pripada vise programskih jezika,na primer proceduralnoj paradigmi pripadaju programski jeziciPascal i C, objektno-orijentisanoj paradigmi pripadaju Simula,JAVA...Potrebno je izuciti svojstva najistaknutijih predstavnikapojedinih programskih paradigmiKoliko jezika

paradigmi

znas, toliko vredis!

Preciznije: Koliko predstavnika razlicitih paradigmi znas, tolikovredis!Sledeci nivo apstrakcije cine koncepti koji su zajednicki zarazlicite paradigme

Milena Vujosevic Janicic Dizajn programskih jezika

Page 18: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Programske paradigme su usko povezane sa programskimjezicima.Svakoj programskoj paradigmi pripada vise programskih jezika,na primer proceduralnoj paradigmi pripadaju programski jeziciPascal i C, objektno-orijentisanoj paradigmi pripadaju Simula,JAVA...Potrebno je izuciti svojstva najistaknutijih predstavnikapojedinih programskih paradigmiKoliko jezika

paradigmi

znas, toliko vredis!

Preciznije: Koliko predstavnika razlicitih paradigmi znas, tolikovredis!Sledeci nivo apstrakcije cine koncepti koji su zajednicki zarazlicite paradigme

Milena Vujosevic Janicic Dizajn programskih jezika

Page 19: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Programske paradigme su usko povezane sa programskimjezicima.Svakoj programskoj paradigmi pripada vise programskih jezika,na primer proceduralnoj paradigmi pripadaju programski jeziciPascal i C, objektno-orijentisanoj paradigmi pripadaju Simula,JAVA...Potrebno je izuciti svojstva najistaknutijih predstavnikapojedinih programskih paradigmiKoliko

jezika

paradigmi znas, toliko vredis!

Preciznije: Koliko predstavnika razlicitih paradigmi znas, tolikovredis!Sledeci nivo apstrakcije cine koncepti koji su zajednicki zarazlicite paradigme

Milena Vujosevic Janicic Dizajn programskih jezika

Page 20: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Programske paradigme su usko povezane sa programskimjezicima.Svakoj programskoj paradigmi pripada vise programskih jezika,na primer proceduralnoj paradigmi pripadaju programski jeziciPascal i C, objektno-orijentisanoj paradigmi pripadaju Simula,JAVA...Potrebno je izuciti svojstva najistaknutijih predstavnikapojedinih programskih paradigmiKoliko

jezika

paradigmi znas, toliko vredis!Preciznije: Koliko predstavnika razlicitih paradigmi znas, tolikovredis!

Sledeci nivo apstrakcije cine koncepti koji su zajednicki zarazlicite paradigme

Milena Vujosevic Janicic Dizajn programskih jezika

Page 21: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Programske paradigme su usko povezane sa programskimjezicima.Svakoj programskoj paradigmi pripada vise programskih jezika,na primer proceduralnoj paradigmi pripadaju programski jeziciPascal i C, objektno-orijentisanoj paradigmi pripadaju Simula,JAVA...Potrebno je izuciti svojstva najistaknutijih predstavnikapojedinih programskih paradigmiKoliko

jezika

paradigmi znas, toliko vredis!Preciznije: Koliko predstavnika razlicitih paradigmi znas, tolikovredis!Sledeci nivo apstrakcije cine koncepti koji su zajednicki zarazlicite paradigme

Milena Vujosevic Janicic Dizajn programskih jezika

Page 22: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Programski jeziciParadigme i programski jeziciPovezanost paradigmi i jezika

Povezanost paradigmi i jezika

Jedan programski jezik moze podrzati vise paradigmi, naprimer C++ podrzava klasican proceduralni stil, ali iobjektno-orijentisani i genricki stil programiranjaZa resavanje nekog konkretnog problema, posebno je bitanizbor programskog jezikaizborJezika.png

Milena Vujosevic Janicic Dizajn programskih jezika

Page 23: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Pregled

1 Uvod

2 Razvoj jezika i paradigmiRazvoj jezikaVrste programskih paradigmiPitanja

3 Osnovne paradigme

4 Dodatne paradigme

5 Literatura Milena Vujosevic Janicic Dizajn programskih jezika

Page 24: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Bitni momenti u razvoju racunara

Jedan od prvih elektrnoskih racunara 1939. ABC za resavanjesistema linearnih jednacinaENIAC — prvi elektronski racunar opste namene (1946)Konceptualna promena krajem 1940. u vidu fon NojmanovearhitektureVezuje se za fon Nojmana i racunar EDVAC 1951, iako je onekim elementima ove arhitekture i ranije bilo reci

Milena Vujosevic Janicic Dizajn programskih jezika

Page 25: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Podele programskih jezika

Masinski zavisniPrednosti i mane masinski zavisnih jezikaMasinski nezavisniPrednosti i mane masinski nezavisnih jezika

Milena Vujosevic Janicic Dizajn programskih jezika

Page 26: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Kratka istorija

FORTRAN — FORmula TRANslating system, 1957, JohnBackus i IBMLISP — LISt Processing, malo posle FORTRANa, 1958, JohnMcCarthy i Paul GrahamCOBOL — COmmon Business-Oriented language, 1959, GraceHopper

Milena Vujosevic Janicic Dizajn programskih jezika

Page 27: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Kratka istorija

60-te ALGOL (58,60,68), Simula, Basic70-te C, Pascal, Smalltalk, Prolog80-te C++, Erlang90-te Haskell, Python, Visual Basic, Ruby, JAVA, PHP,OCaml, Lua, JavaScript...C#, Scala, F#, Elixir...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 28: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Razvoj programskih jezika

Postoji veliki broj programskih jezika, neki su sirokorasprostranjeni, neki se vise ne koristeJava, C, C++, C#, Pascal, Visual Basic, Lisp, Scheme, ML,Ruby, Modula-2, JavaScript, Fortran, Cobol, Haskell, Oberon,Prolog, PHP, Perl, Python, Ada, ScalaNastanak i razvoj programskih jezika dosta dobro se mozeprikazati pomocu razvojnog stabla.Razvojno stablo mogucava da se sagleda vreme nastankapojedinih programskih jezika, kao i medusobni uticaji.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 29: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Razvoj programskih jezika

Nema jedinstvenog razvojnog stabla (od autora zavisi na kojejezike ce staviti akcenat i kako ce ih medusobno povezati).prog_lang.pdfprog_lang_poster.pdfdiagram-full.pdfdiagram-light.pdfhttp://startit.rs/kad-bi-programski-jezici-bili-deca-u-vrticu/U kom razdoblju je nastao najveci broj programskih jezika?Koji su najuticajniji programski jezici?Kada su nastali najuticajniji programski jezici?Zasto postoji veliki broj programskih jezika?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 30: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Razvoj programskih paradigmi

Nove programske paradigme nastajale su uz teznju da seolaksa proces programiranja.Istovremeno, nastanak novih paradgmi povezan je sa efikasnimkreiranjem sve kompleksnijeg softvera.Svaka novonastala paradigma, bila je promovisana preko nekogprogramskog jezika.Razvoj programskih paradigmi (kao i programskih jezika)skopcan je i sa razvojem hardvera.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 31: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Razvoj programskih paradigmi

Razlicita shvatanja programskih paradigmiNe postoji jedinstveno misljenje naucnika o programskimparadigma (vrstama programskih paradigmi, njihovom znacaju,najistaknutijim programskim jezicima pojedinih paradigmi itd.)Moguce su razlicite podele na programske paradigme.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 32: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Osnovne programske paradigme

Najopstija podela je na proceduralnu i deklarativnu paradigmuProceduralna paradigma — osnovni zadatak programera daopise nacin (proceduru) kojim se dolazi do resenja problema.Deklarativna paradigma — osnovni zadatak programera je daprecizno opise problem, dok se mehanizam programskog jezikabavi pronalazenjem resenja problema.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 33: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Vrste programskih paradigmi

Osnovne programske paradigmeImeprativna paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigma

Ostale paradigme se cesto tretiraju kao podparadigme ilikombinacije osnovnih.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 34: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Napomena o imperativnoj i proceduralnoj paradigmi

Postoji vise shvatanja proceduralne paradigme:1 Proceduralna paradigma je podparadigma imperativne

paradigme koju karakterise, pored naredbi, i njihovo grupisanjeu podprograme (funkcije).U ovom slucaju, u literaturi se cesto imperativna iproceduralna paradigma koriste kao sinonimi.Imerativna paradigma se karakterise postojanjem naredbi, dokse deklarativna paradigma karakterise nepostojanjem naredbi.

2 Proceduralna paradigma je svaka paradigma kod koje se uprocesu programiranja opisuje algoritam (procedura) resavanjaproblema.U ovom slucaju je imperativna paradigma podparadigmaproceduralne paradigme dok je deklarativna paradigma (pitanjeSTA) suprotna od proceduralne paradigme (pitanje KAKO).

Milena Vujosevic Janicic Dizajn programskih jezika

Page 35: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Programski jezici i pradigme

Programski jezik je sredstvo koje koristi covek da izrazi procespomocu kojeg racunar resava nekakav problem.U zavisnosti od toga na kojoj od ovih reci je akcenat,programskim jezikom je podrzana dominatata programskaparadigama:

covek — logicka paradigmaproces — funkcionalna paradigmaracunar — proceduralna paradigmaproblem — objektno-orijentisana paradigma

Milena Vujosevic Janicic Dizajn programskih jezika

Page 36: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Programski jezici i pradigme

Prethodna definicija programskog jezika je prilagodenaosnovnim programskim paradigmama.Ova definicija se moze dopuniti tako da se preko nje moguobuhvatiti i druge paradigme.Na primer, modifikacija moze biti:Programski jezik je sredstvo koje koristi covek da izrazi procespomocu kojeg racunar, koristeci paralelnu obradu, resavanekakav problem.Ako je akcenat na paralelnoj obradi, dolazi se do konkurentne(paralelne) paradigme.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 37: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Dodatne programske paradigme

Komponentna paradigmaKonkurentna paradigmaSkript paradigmaGenericka paradigmaParadigma programiranja ogranicenjaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigma

Milena Vujosevic Janicic Dizajn programskih jezika

Page 38: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Razvoj jezikaVrste programskih paradigmiPitanja

Pitanja

Znacenje reci paradigma i programska paradigma.Uloga programskih paradigmi.Definicija programskog jezika.Povezanost paradigmi i jezika.Razvoj programskih jezika.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 39: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Pregled

1 Uvod

2 Razvoj jezika i paradigmi

3 Osnovne paradigmeImperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

4 Dodatne paradigme

5 Literatura

Milena Vujosevic Janicic Dizajn programskih jezika

Page 40: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Imperativna paradigma

Imperativna paradigma nastala je pod uticajem FonNojmanove arhitekture racunaraMoze se reci da se zasniva na tehnoloskom konceptu digitalnogracunaraProces izracunavanja se odvija slicno kao neke svakodnevnerutine (zanovan je na algoritamskom nacinu rada), kao sto jespremanje hrane koriscenjm recepata, popravljanje kola i sl.Moze da se okarakterise recenicom:“prvo uradi ovo, zatim uradi ono”Procedurom se saopstava racunaru KAKO se problem resava,tj navodi se precizan niz koraka (algoritam) potreban zaresavanje problema

Milena Vujosevic Janicic Dizajn programskih jezika

Page 41: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Imperativna paradigma

Osnovni pojam imperativnih jezika je naredbaNaredbe se grupisu u procedure i izvrsavaju se sekvencijalnoukoliko se eksplicitno u programu ne promeni redosledizvrsavanja naredbiUpravljacke strukture su naredbe grananja, naredbe iteracije, inaredbe skoka (goto)Oznake promenljivih su oznake memorijskih lokacija pa se unaredbama cesto mesaju oznake lokacija i vrednosti - toizaziva bocne efekte.C, Pascal, Basic, Fortran, PL, Algol...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 42: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Objektno-orijentisana paradigma

Ovo je jedna od najpopularnijih programskih paradigmiSazrela je pocetkom osamdesetih godina proslog veka, kaoteznja da se jednom napisani softver koristi vise putaSimualcija (modeliranje) spoljasnjeg sveta pomocu objekataObjekti interaguju medusobno razmenom porukaMogla bi da se okarakterise recenicom:“Uputi poruku objektima da bi simulurao tok nekog fenomena”

Milena Vujosevic Janicic Dizajn programskih jezika

Page 43: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Objektno-orijentisana paradigma

Podaci i procedure (funkcije) se ucauravaju (enkapsuliraju) uobjekteKoristi se skrivanje podataka da bi se zastitila unutrasnjasvojstva objekataObjekti su grupisani po klasama (klasa predstavlja sablon(koncept) na osnovu kojeg se kreiraju konkretni objekti, tj.instance)Klase su najcesce hijerarhijski organizovane i povezanemehanizmom nasledivanja.Simula 67, SmallTalk, C++, Eiffel, Java, C#

Milena Vujosevic Janicic Dizajn programskih jezika

Page 44: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Funkcionalna paradigma

Rezultat teznje da se drugacije organizuje proces programiranjaIzracunavanja su evaluacije matematickih funkcijaZasnovana je na pojmu matematicke funkcije i ima formalnustrogo definisanu matematicku osnovu u lambda racunuMogla bi se okarakterisati narednom recenicom“Izracunati vrednost izraza i koristiti je”

Milena Vujosevic Janicic Dizajn programskih jezika

Page 45: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Funkcionalna paradigma

Eliminisani su bocni efekti sto utice na lakse razumevanje ipredvidanje ponasanja programa — Izlazna vrednost funkcijezavisi samo od ulaznih vrednosti argumenata funkcijeNajistaknutiji predstavnik funkcionalne paradigme jeprogramski jezik Lisp.Nastala pedesetih i pocetkom sezdesetih godina proslog veka,stagnacja u razvoju sedamdesetih godina proslog veka,ozivljavanje funkcionane paradigme programskim jezikomHaskellLisp, Scheme, Haskell, ML, Scala, OCaml

Milena Vujosevic Janicic Dizajn programskih jezika

Page 46: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Logicka paradigma

Nastaje kao teznja da se u kreiranju programa koristi isti nacinrazmisljanja kao i pri resavanju problema u svakodnevnomzivotuDeklarativna paradigmaOpisuju se odnosi izmedu cinjenica i pravila u domenuproblema; koriste se aksiome, pravila izvodenja i upitiLogicka paradigma se dosta razlikuje od svih ostalih po nacinupristupa resavanju problema.Nije jednako pogodna za sve oblasti izracunavnja, osnovnidomen je resavanje problema vestacke inteligencije

Milena Vujosevic Janicic Dizajn programskih jezika

Page 47: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Logicka paradigma

Izvrsavanje programa zasniva se na sistematskom pretrazivanjuskupa cinjenica uz koriscenje odredenih pravila zakljucivanja.Zasnovana na matematickoj logici, tj. na predikatskom racunu1. reda.Zasnovana na automatskom dokazivanju teorema (metodrezolucije)Mogla bi da se okarakterise recenicom:“Odgovori na pitanje kroz trazenje resenja”Najpoznatiji programski jezik logicke paradigme je PROLOGProlog, ASP, Datalog, CLP, ILOG, Solver, ParLog, LIFE

Milena Vujosevic Janicic Dizajn programskih jezika

Page 48: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Pitanja

Sta karakterise proceduralnu paradigmu?Sta karakterise deklarativnu paradigmu?Koje su osnovne cetiri programske paradigme?Nabroj bar cetiri dodatne programske paradigme.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 49: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Pitanja

Koje su osnovne karakteristike imperativne paradigme?Nabroj tri jezika koji pripadaju imperativnoj paradigmi.Koje su osnovne karakteristike ... paradigme?Nabroj tri jezika koji pripadaju ... paradigmi.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 50: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Imperativna (proceduralna) paradigmaObjektno-orijentisana paradigmaFunkcionalna paradigmaLogicka paradigmaPitanja

Pitanja

Sta je programska paradigma?Koje su osnovne programske paradigme?Sta je programski jezik?Koji je odnos programskih jezika i programskih paradigmi?Zasto su nastajale i nastaju nove programske paradigme?

Milena Vujosevic Janicic Dizajn programskih jezika

Page 51: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Pregled

1 Uvod

2 Razvoj jezika i paradigmi

3 Osnovne paradigme

4 Dodatne paradigmeKomponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

5 Literatura

Milena Vujosevic Janicic Dizajn programskih jezika

Page 52: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Dodatne programske paradigme

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigma

Milena Vujosevic Janicic Dizajn programskih jezika

Page 53: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Komponentna paradigma

Ideja je da se softver sklapa od vecih gotovih komponenti, kaosto se to radi kod sklapanja elektronskih i tehnickih uredajaSoftverska komponenta je kolekcija delova (metoda i objekata)koji obezbeduju neku funkcionalnost.Kao i tehnicke komponente, i softverske komponente mogu bitiproste ili kompleksne, mogu delati samostalno ili u konjunkcijisa drugim jedinicama.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 54: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Komponentna paradigma

Komponentna paradigma je nova paradigma ili potparadigmaobjektno-orijentisane paradigme?Nezavisno od toga, pitanje je: da li treba posebno izucavatikomponentno programiranje?Stil programiranja koji je u ekspanziji i treba mu poklonitiposebnu paznju.Ideja je da se uprosti proces programiranja i da se jednomkreirane komponente mnogo puta koriste.Komponenta je jedinica funkcionalnosti sa “ugovorenim”interfejsom.Interfejs definise nacin na koji se komunicira sa komponentom,i on je u potpunosti odvojen od implementacije.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 55: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Komponentna paradigma

Komponente se medusobno povezuju da bi se kreiraokompleksan softverNacin povezivanja komponenti treba da bude jednostavan, pomogucnosti prevlacenjem i spustanjem na zeljenu lokaciju.Kreiranje programa se vrsi biranjem komponenti ipostavljanjem na pravo mesto, a ne pisanjem “linije za linijom”.U okviru komponentnog programiranja, vazno je razvojnookruzenje koje se koristi, dok sama implementacija komponentii kod koji se komponentnim programiranjem generise moze dabude u razlicitim programskim jezicima, npr JAVA, C++, C#...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 56: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Konkurentna paradigma

Konkurentnu paradigmu karakterise vise procesa koji seizvrsavaju u istom vremenskom periodu, a koji imaju isti ciljPostoje razlicite forme konkurentnosti:

Konkurentnost u uzem smislu — jedan procesor, jednamemorijaParalelno programiranje — vise procesora, jedna memorijaDistribuirano programiranje — vise procesora, vise memorija

Milena Vujosevic Janicic Dizajn programskih jezika

Page 57: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Konkurentna paradigma

Konkurentnost u uzem smislu karakterise preklapajuceizvrsavanje vise procesa koji koriste isti procesor i kojikomuniciraju preko zajednicke memorije.Ovi procesi modeliraju procese spoljasnjeg sveta koji mogu dase dese konkurentno, na primer kod operativnih sistema

Milena Vujosevic Janicic Dizajn programskih jezika

Page 58: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Konkurentna paradigma

Ukoliko postoji vise procesora sa pristupom jedinstvenojmemoriji, onda je u pitanju paralelno programiranjeProcesi medusobno komuniciraju preko zajednicke memorijeCilj paralelnog izracunavanja je ubrzanje toka izracunavanja

Milena Vujosevic Janicic Dizajn programskih jezika

Page 59: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Konkurentna paradigma

Ukoliko postoji vise procesora od kojih svaki ima svojumemoriju, onda je u pitanju distribuirano programiranjeProcesi medusobno salju poruke da bi razmenili informacije.Distribuirano izracunavanje cine grupe umrezenih racunarakoje imaju isti cilj za posao koji izvrsavaju.Moze se shvatiti kao vrsta paralelnog izracunavanja ali sadrugacijom medusobnom komunikacijom koja namece noveizazove.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 60: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Konkurentna paradigma

Pisanje konkurentnih (konkurentnih u uzem smislu, paralelnih,distribuiranih) programa je znacajno teze od pisanjasekvencijalnih programa.Konkurentno programiranje namece nove probleme, po pitanjusinhronizacije procesa i pristupa zajednickim podacima.Za osnovne koncepte konkurentnog programiranja potrebno jeobezbediti odgovarajucu podrsku u programskom jeziku.Ada, Modula, ML, Java ...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 61: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Paradigma programiranja ogranicenja

U okviru paradigme programiranja ogranicenja zadaju serelacije izmedu promenljivih u formi nekakvih ogranicenjaOgranicenja mogu biti raznih vrsta (logicka, linearna...)Ova ogranicenja ne zadaju sekvencu koraka koji treba da seizvrse vec osobine resenja koje treba da se pronadeDeklarativna paradigmaJezici za programiranje ogranicenja cesto su nadogradnjajezika logicke paradigme, na primer PROLOGaPostoje biblioteke za podrsku ovoj vrsti programiranja u okviruimperativnih programskih jezika, npr za jezike C, JAVA, C++,PythonBProlog, OZ, Claire, Curry

Milena Vujosevic Janicic Dizajn programskih jezika

Page 62: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Skript jezici

Skript jezik je programski jezik koji sluzi za pisanje skriptova.Skript je spisak (lista) komandi koje mogu biti izvrsene uzadatom okruzenju bez interakcije sa korisnikom.U prvobitnom obliku pojavljuju se kao komandni jezicioperativnih sistema (npr Bash)Skript jezici imaju veliku primenu na Internetu.Skript jezici mogu imati specifican domen primene, ali mogubiti i jezici opste namene (npr Python)

Milena Vujosevic Janicic Dizajn programskih jezika

Page 63: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Skript jezici

Skript jezici se ne kompiliraju vec interpreterajuCesto se koriste za povezivanje komponenti unutar nekeaplikacijeOmogucavaju kratak kodNajcesce nisu strogo tipiziraniKod i podaci cesto mogu zameniti uloge

Milena Vujosevic Janicic Dizajn programskih jezika

Page 64: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Skript jezici

Nije uvek lako napraviti razliku izmedu skript-jezika i drugihprogramskih jezikaSkript paradigma je cesto specificna kombinacija drugihparadigmi, kao sto su: objektno-orijentisana, proceduralna,funkcionalna (pa je to razlog sto se skript paradigma neprepoznaje uvek kao posebna paradigma).Skript jezici su u ekspanzijiUnix Shell (sh), JavaScript, PHP, Perl, Python, XSLT,VBScript, Lua, Ruby...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 65: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Paradigma upitnih jezika

Upitni jezici mogu biti vezani za baze podataka ili zapronalazenje informacija (information retrieval)Deklarativna paradigma

Milena Vujosevic Janicic Dizajn programskih jezika

Page 66: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Upitni jezici baza podataka

Upitni jezici baza podataka — oni na osnovu strukturiranihcinjenica zadatih u okviru strukturiranih baza podataka dajukonkretne odgovore koji zadovoljavanju nekakve trazeneuslove.Najpoznatiji predstavnik upitnih jezika za relacione bazepodataka je SQL.XQuery je jezik za pretrazivanje XML strukturiranih podataka

Milena Vujosevic Janicic Dizajn programskih jezika

Page 67: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Upitni jezici baza podataka

Digresija: Jezici za obelezavanje teksta i programskeparadigme

Poslednjih decenija veliki procvat dozivljavaju jezici zaobelezavanje teksta, kao sto su: SGML, HTML, XMLJezici za obelezavanje teksta nisu programski jezici pa samimtim i ne mogu da generisu neku programsku paradigmu.Medutim, paralelno sa razvojem jezika za obelezavanje(posebno XML), razvijeni su specijalizovani programski jeziciza razne obrade koje se odnose na jezike za obelezavanje.U takve jezike spadaju: XSLT, XQuery, XLS, ... Ovi jezici semogu pridruziti raznim paradigmama.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 68: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Upitni jezici za pronalazenje informacija

Upitni jezici za pronalazenje informacija su upitni jezici kojipronalaze dokumenta koji sadrze informacije relevantne zaoblast istrazivanja.CQL jezik za iskazivanje upita za pronalazenje informacija.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 69: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Reaktivna paradigma

Rekativno programiranje je usmereno na tok podatka u smisluprenosenja izmena prilikom promene podatakaNa primer, u proceduralnom programskom jeziku, a = b + c jekomanda koja se izvrsava dodelom vrednosti promenljivoj a naosnovu trenutnih vrednosti promenljivih b i c i kasnija promenavrednosti b ili c ne utice na promenu vrednosti promenljive aKod reaktivnog programiranja, a = b + c ima znacenje dasvaka promena vrednosti b i c utice na izmenu vrednostipromenljive a

Milena Vujosevic Janicic Dizajn programskih jezika

Page 70: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Reaktivna paradigma

Programiranje u okviru tabela, npr VisiCalc, Excel, LibreOfficeCalcJezici za opis hardvera pripadaju ovoj paradigmi, jer se izmenajednog kola u dizajnu propagira na celo kolo — Verilog, VHDL...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 71: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Vizuelna paradigma

Vrsi modelovanje spoljasnjeg sveta (usko povezana saobjektno-orijentisanom paradigmom).Koriste se graficki elementi (dijagrami) za opis akcija, svojstvai povezanosti sa raznim resursimaVizuelni jezici su dominantni u fazi dizajniranja programaPostoje razne vrste dijagrama: dijagram klasa, dijagramkoriscenja, dijagram stanja, dijagram aktivnosti, dijagraminterakcija...

Milena Vujosevic Janicic Dizajn programskih jezika

Page 72: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Vizuelna paradigma

Postoje softverski alati za prevodenje “vizuelnog opisa” u nekiprogramski jezik (samim tim i masinski jezik).Pogodnija za pravljenje “skica” programa, a ne za detaljan opisGlavni predstavnik ove paradigme je UML.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 73: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Komponentna paradigmaKonkurentna paradigmaParadigma programiranja ogranicenjaSkript paradigmaParadigma upitnih jezikaReaktivna paradigmaVizuelna paradigmaPitanja

Pitanja

Koje su osnovne karakteristike komponentne paradigme?Nabroj tri jezika koji pripadaju (podrzavaju) komponentnuparadigmu.Koje su osnovne karakteristike ... paradigme?Nabroj tri jezika koji pripadaju ... paradigmi.

Milena Vujosevic Janicic Dizajn programskih jezika

Page 74: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Pregled

1 Uvod

2 Razvoj jezika i paradigmi

3 Osnovne paradigme

4 Dodatne paradigme

5 Literatura

Milena Vujosevic Janicic Dizajn programskih jezika

Page 75: Dizajnprogramskihjezika - · PDF filePascaliC,objektno-orijentisanojparadigmipripadajuSimula, JAVA... Potrebnojeizuˇcitisvojstvanajistaknutijihpredstavnika pojedinihprogramskihparadigmi

UvodRazvoj jezika i paradigmi

Osnovne paradigmeDodatne paradigme

Literatura

Literatura

Peter Van Roy, Seif Haridi — Concepts, Techniques, andModels of Computer Programming, MIT Press, 2003.Deo materijala je preuzet od prof Dusana Tosica, iz istoimenogkursa

Milena Vujosevic Janicic Dizajn programskih jezika