42
Programski jezici Programski jezici Uvod Uvod Razvoj i vrste programskih jezika Razvoj i vrste programskih jezika

1 uvod (1)

  • Upload
    minocka

  • View
    82

  • Download
    6

Embed Size (px)

Citation preview

Page 1: 1 uvod (1)

Programski jeziciProgramski jezici

UvodUvod

Razvoj i vrste programskih jezikaRazvoj i vrste programskih jezika

Page 2: 1 uvod (1)

NastavaNastava

Sedmični fond časova: 2 + 2Sedmični fond časova: 2 + 2

PredavanjaPredavanja:: 2 2 časa (ukupno 30 časova)časa (ukupno 30 časova) Vanr. prof. dr Dragan Janković, dipl.inž.el.Vanr. prof. dr Dragan Janković, dipl.inž.el. Viši asistent Mr. Viši asistent Mr. SnjeSnježana Milinkovićžana Milinković, dipl.inž.el., dipl.inž.el.

Auditorne i laboratorijske vežbe: 2 časa (ukupno 30 Auditorne i laboratorijske vežbe: 2 časa (ukupno 30 časova)časova) Viši asistent Mr. Snježana Milinković, dipl.inž.el.Viši asistent Mr. Snježana Milinković, dipl.inž.el. Asistent Ognjen Bjelica, Asistent Ognjen Bjelica, dipl.inž.el.dipl.inž.el.

Page 3: 1 uvod (1)

OcenjivanjeOcenjivanje

Prisustvo nastavi – 5%Prisustvo nastavi – 5% Laboratorijske vežbe – 20%Laboratorijske vežbe – 20%

Uspešno odbranjene laboratorijske vežbe su uslov za Uspešno odbranjene laboratorijske vežbe su uslov za polaganje ispitapolaganje ispita

Zadaci – 45%Zadaci – 45% Uslov za iUslov za izlazak na teoretski deo ispita je minimalno zlazak na teoretski deo ispita je minimalno

50% ostvarenih bodova na zadacima50% ostvarenih bodova na zadacima Teorija – 30%Teorija – 30% Konačna ocena: suma bodova iz svih aktivnosti Konačna ocena: suma bodova iz svih aktivnosti

(min. 50% za prolaznu ocenu a od toga min. (min. 50% za prolaznu ocenu a od toga min. 50% na zadacima)50% na zadacima)

Page 4: 1 uvod (1)

Polaganje ispitaPolaganje ispita

Dva kolokvijumaDva kolokvijuma ZadaciZadaci TeorijaTeorija

Integralni ispitIntegralni ispit ZadaciZadaci TeorijaTeorija

Page 5: 1 uvod (1)

LiteraturaLiteratura

Teorija: Teorija: Programski jeziciProgramski jezici, , Milena StankovićMilena Stanković Materijali u elektronskoj formi Materijali u elektronskoj formi PredavanjaPredavanja

http://www.etf.unssa.rs.ba/~snjezahttp://www.etf.unssa.rs.ba/~snjeza

VežbeVežbe http://www.etf.unssa.rs.ba/~ognjenhttp://www.etf.unssa.rs.ba/~ognjen Auditorne vežbeAuditorne vežbe Laboratorijske vežbeLaboratorijske vežbe Ispitni zadaciIspitni zadaci

Page 6: 1 uvod (1)

Sadržaj predmetaSadržaj predmeta

Razvoj i vrste programskih jezikaRazvoj i vrste programskih jezika Sintaksa programskih jezikaSintaksa programskih jezika Tipovi podatakaTipovi podataka Osnovne upravljačke struktureOsnovne upravljačke strukture Strukturni tipovi podatakaStrukturni tipovi podataka Dinamičke strukture podatakaDinamičke strukture podataka PotprogramiPotprogrami Objektno orijentisani jeziciObjektno orijentisani jezici Internet i Web tehnologijeInternet i Web tehnologije

Page 7: 1 uvod (1)

Razvoj i vrste Razvoj i vrste programskih jezikaprogramskih jezika

Page 8: 1 uvod (1)

Razvoj i vrste programskih jezikaRazvoj i vrste programskih jezika

Pojam jezikaPojam jezika Definicija programskih jezikaDefinicija programskih jezika Klasifikacija programskih jezika po stepenu Klasifikacija programskih jezika po stepenu

zavisnosti od računarazavisnosti od računara Hronologija razvoja viših programskih jezikaHronologija razvoja viših programskih jezika Podela programskih jezika prema oblasti Podela programskih jezika prema oblasti

primeneprimene Kriterijumi ocene programskih jezikaKriterijumi ocene programskih jezika Karakteristike programskih jezikaKarakteristike programskih jezika

Page 9: 1 uvod (1)

Pojam jezikaPojam jezika

Page 10: 1 uvod (1)

Definicija programskih jezikaDefinicija programskih jezika

Page 11: 1 uvod (1)

Klasifikacija programskih jezika po Klasifikacija programskih jezika po stepenu zavisnosti od računarastepenu zavisnosti od računara

Page 12: 1 uvod (1)

Hronologija razvoja na osnovu Hronologija razvoja na osnovu prethodne klasifikacijeprethodne klasifikacije

Mašinski kodMašinski kod Heksadecimalni zapis mašinskog kodaHeksadecimalni zapis mašinskog koda Asemblerski jeziciAsemblerski jezici Makroasemblerski jeziciMakroasemblerski jezici Viši programski jezici (algoritamski ili Viši programski jezici (algoritamski ili

proceduralni, strukturni jezici)proceduralni, strukturni jezici) Problemu orijentisani programski jeziciProblemu orijentisani programski jezici

Page 13: 1 uvod (1)

AsembleriAsembleri

Asemblerske naredbe – simbolički zapisane Asemblerske naredbe – simbolički zapisane mašinske naredbemašinske naredbe

Page 14: 1 uvod (1)

MakroprocesoriMakroprocesori

Page 15: 1 uvod (1)

Kompilatori i interpretatoriKompilatori i interpretatori

Page 16: 1 uvod (1)

Hibridni sistemiHibridni sistemi

Page 17: 1 uvod (1)

Hronologija razvoja viših Hronologija razvoja viših programskih jezikaprogramskih jezika

Page 18: 1 uvod (1)

Hronologija razvoja viših Hronologija razvoja viših programskih jezika (nastavak)programskih jezika (nastavak)

Page 19: 1 uvod (1)

FORTRANFORTRAN

FORmula TRANslationFORmula TRANslation Prva verzija 1957. godinePrva verzija 1957. godine FORTRAN IV 1962. godineFORTRAN IV 1962. godine FORTRAN 77 1977. godineFORTRAN 77 1977. godine FORTRAN 90 1990. godineFORTRAN 90 1990. godine FORTRAN 95 1995. godineFORTRAN 95 1995. godine FORTRAN 2003 2003. godineFORTRAN 2003 2003. godine FORTRAN 2008 2008. godineFORTRAN 2008 2008. godine Najpogodniji jezik za razvoj naučno-tehničkih aplikacijaNajpogodniji jezik za razvoj naučno-tehničkih aplikacija

Page 20: 1 uvod (1)

FORTRAN - primerFORTRAN - primer

Page 21: 1 uvod (1)

COBOLCOBOL

COmmon Business Oriented LanguageCOmmon Business Oriented Language Prva verzija 1959. godinePrva verzija 1959. godine Podržan od vodećih kompanija (IBM, Podržan od vodećih kompanija (IBM,

Honeywell, Flow-Matic)Honeywell, Flow-Matic) Pogodan za razvoj poslovnih aplikacijaPogodan za razvoj poslovnih aplikacija

Page 22: 1 uvod (1)

COBOL - primerCOBOL - primer

Page 23: 1 uvod (1)

ALGOLALGOL

ALGOrithmic LanguageALGOrithmic Language Algol60, 1960. godineAlgol60, 1960. godine Nije doživio značajnu primenu u praksiNije doživio značajnu primenu u praksi Najznačajniji je za razvoj teorije programskih Najznačajniji je za razvoj teorije programskih

jezikajezika Koncepti Algola prepoznatljivi su u Koncepti Algola prepoznatljivi su u

najsavremenijim programskim jezicimanajsavremenijim programskim jezicima

Page 24: 1 uvod (1)

ALGOL - primerALGOL - primer

Page 25: 1 uvod (1)

BASICBASIC

Beginers All-purpose Symbolic Instruction CodeBeginers All-purpose Symbolic Instruction Code 1961. godina1961. godina Zamišljen kao jednostavnija varijanta Zamišljen kao jednostavnija varijanta

FORTRAN-aFORTRAN-a Velika popularnost sa pojavom PC računara Velika popularnost sa pojavom PC računara

osamdesetih godinaosamdesetih godina Danas veoma popularni VB, VB.NETDanas veoma popularni VB, VB.NET

Page 26: 1 uvod (1)

PASCALPASCAL

Početak sedamdesetih godinaPočetak sedamdesetih godina Zamišljen kao jednostavan jezik za obuku Zamišljen kao jednostavan jezik za obuku

kadrova i učenje metodologije programiranjakadrova i učenje metodologije programiranja Korijeni u jeziku Algol60Korijeni u jeziku Algol60 Jako značajan za prihvatanje ideje strukturnog Jako značajan za prihvatanje ideje strukturnog

programiranjaprogramiranja

Page 27: 1 uvod (1)

PASCAL - primerPASCAL - primer

Page 28: 1 uvod (1)

ADAADA

Nastaje osamdesetih godinaNastaje osamdesetih godina Podrška američkog ministarstva odbranePodrška američkog ministarstva odbrane Projektovan sa idejom da preuzme primatProjektovan sa idejom da preuzme primat Nije doživio predviđenu praktičnu primjenuNije doživio predviđenu praktičnu primjenu Jako značajan za teoriju programskih jezikaJako značajan za teoriju programskih jezika Model jezika na osnovu koga se danas Model jezika na osnovu koga se danas

postavljaju svi značajniji koncepti programskih postavljaju svi značajniji koncepti programskih jezikajezika

Najbolje zadovoljava potrebe nastave iz Najbolje zadovoljava potrebe nastave iz programskih jezikaprogramskih jezika

Page 29: 1 uvod (1)

ADA - primjerADA - primjer

Page 30: 1 uvod (1)

Programski jezik CProgramski jezik C

Nastaje 1970. godineNastaje 1970. godine Jezik za razvoj UNIX-aJezik za razvoj UNIX-a ANSI CANSI C Sprega sa hardveromSprega sa hardverom Pogodan za razvoj komponenti sistemskog Pogodan za razvoj komponenti sistemskog

softvera i u drugim primenama gde je potrebna softvera i u drugim primenama gde je potrebna sprega sa resursima sistemasprega sa resursima sistema

Objektna nadgradnja C++, Objektna nadgradnja C++, C#C#

Page 31: 1 uvod (1)

C - primerC - primer

Page 32: 1 uvod (1)

SMALLTALKSMALLTALK

Prvi potpuno objektno-orijentisan jezik Prvi potpuno objektno-orijentisan jezik Smalltalk-80Smalltalk-80

Koreni objektnih jezika u jeziku Simula 67Koreni objektnih jezika u jeziku Simula 67 Današnji savremeni jezici su skoro svi objektno-Današnji savremeni jezici su skoro svi objektno-

orijentisaniorijentisani Kombinacija objektnog i vizuelnog Kombinacija objektnog i vizuelnog

programiranjaprogramiranja Event Driven ProgrammingEvent Driven Programming Visual Basic, Visual C++, Java, C#Visual Basic, Visual C++, Java, C#

Page 33: 1 uvod (1)

SMALLTALK - primerSMALLTALK - primer

Page 34: 1 uvod (1)

Microsoft Visual StudioMicrosoft Visual Studio

Page 35: 1 uvod (1)

Jezici u oblasti veštačke inteligencijeJezici u oblasti veštačke inteligencije

LISP - LISt ProcessingLISP - LISt Processing Prva verzija 1958. godinePrva verzija 1958. godine

PROLOG – PROgramming LOGicPROLOG – PROgramming LOGic Nastaje sedamdesetih godinaNastaje sedamdesetih godina

Page 36: 1 uvod (1)

LISP - primerLISP - primer

Page 37: 1 uvod (1)

Podela programskih jezika prema Podela programskih jezika prema oblasti primeneoblasti primene

Jezici za naučne aplikacijeJezici za naučne aplikacije Jezici za poslovne aplikacijeJezici za poslovne aplikacije Jezici veštačke inteligencijeJezici veštačke inteligencije Jezici za razvoj sistemskog softveraJezici za razvoj sistemskog softvera Jezici za računarske komunikacijeJezici za računarske komunikacije Jezici specijalne nameneJezici specijalne namene

Page 38: 1 uvod (1)

Kriterijumi ocene programskih jezikaKriterijumi ocene programskih jezika

ČitljivostČitljivost JednostavnostJednostavnost OrtogonalnostOrtogonalnost Upravljačke struktureUpravljačke strukture Strukture podatakaStrukture podataka SintaksaSintaksa

Jednostavnost pisanja programaJednostavnost pisanja programa Jednostavnost i ortogonalnostJednostavnost i ortogonalnost Podrška apstrakciji podatakaPodrška apstrakciji podataka IzražajnostIzražajnost

Page 39: 1 uvod (1)

Kriterijumi ocene programskih jezikaKriterijumi ocene programskih jezika

Pouzdanost jezikaPouzdanost jezika Tipovi podatakaTipovi podataka Obrada izuzetakaObrada izuzetaka Pseudonimi (aliasing)Pseudonimi (aliasing)

Efikasnost jezikaEfikasnost jezika Efikasnost programa napisanog na određenom Efikasnost programa napisanog na određenom

programskom jezikuprogramskom jeziku Efikasnost kompilatoraEfikasnost kompilatora Efikasnost razvojnog okruženja (svi potrebni alati za Efikasnost razvojnog okruženja (svi potrebni alati za

brzi razvoj aplikacija)brzi razvoj aplikacija)

Page 40: 1 uvod (1)

Karakteristike programskih jezikaKarakteristike programskih jezika Formalno definisana sintaksa programskog jezikaFormalno definisana sintaksa programskog jezika Jaki tipovi podatakaJaki tipovi podataka Strukturni tipovi podatakaStrukturni tipovi podataka Upravljačke struktureUpravljačke strukture PotprogramiPotprogrami ModuliModuli Mehanizmi za konkurentno programiranjeMehanizmi za konkurentno programiranje Mehanizmi niskog nivoaMehanizmi niskog nivoa Mehanizmi za obradu grešakaMehanizmi za obradu grešaka Standardni skup U/I proceduraStandardni skup U/I procedura

Page 41: 1 uvod (1)

PitanjaPitanja

??????

Page 42: 1 uvod (1)

Pitanja - ponavljanjePitanja - ponavljanje Šta je programski jezik?Šta je programski jezik? Kako se vrši klasifikacija programskih jezika po stepenu zavisnosti od Kako se vrši klasifikacija programskih jezika po stepenu zavisnosti od

računara?računara? Nabrojati klase mašinski zavisnih jezika.Nabrojati klase mašinski zavisnih jezika. Nabrojati klase mašinski nezavisnih jezika.Nabrojati klase mašinski nezavisnih jezika. Šta je kompilator?Šta je kompilator? Šta je interpretator?Šta je interpretator? Šta je asembler?Šta je asembler? Šta je makroprocesor?Šta je makroprocesor? Koji programski jezik je najpogodniji za razvoj naučno-tehničkih aplikacija?Koji programski jezik je najpogodniji za razvoj naučno-tehničkih aplikacija? Koji programski jezik se smatra najvažnijim za prihvatanje ideje strukturnog Koji programski jezik se smatra najvažnijim za prihvatanje ideje strukturnog

programiranja?programiranja? Koji programski jezik se smatra prvim potpuno objektno orijentisanim Koji programski jezik se smatra prvim potpuno objektno orijentisanim

jezikom?jezikom? U kojim oblastima je pogodno koristiti programski jezik C?U kojim oblastima je pogodno koristiti programski jezik C?