440 likes | 736 Views
Programski jezici. Uvod Razvoj i vrste programskih jezika. Nastava. Sedmični fond časova: 2 + 2 Predavanja : 2 časa (ukupno 30 časova) Vanr. prof. dr Dragan Janković, dipl.inž.el. Viši asistent Mr. Snje žana Milinković , dipl.inž.el.
E N D
Programski jezici Uvod Razvoj i vrste programskih jezika
Nastava • Sedmični fond časova: 2 + 2 • Predavanja: 2 časa (ukupno 30 časova) • Vanr. prof. dr Dragan Janković, dipl.inž.el. • Viši asistent Mr. Snježana Milinković, dipl.inž.el. • Auditorne i laboratorijske vežbe: 2 časa (ukupno 30 časova) • Viši asistent Mr. Snježana Milinković, dipl.inž.el. • Asistent Ognjen Bjelica, dipl.inž.el.
Ocenjivanje • Prisustvo nastavi – 5% • Laboratorijske vežbe – 20% • Uspešno odbranjene laboratorijske vežbe su uslov za polaganje ispita • Zadaci – 45% • Uslovzaizlazak na teoretski deo ispita je minimalno 50% ostvarenih bodova na zadacima • Teorija – 30% • Konačna ocena: suma bodova iz svih aktivnosti (min. 50% za prolaznu ocenu a od toga min. 50% na zadacima)
Polaganje ispita • Dva kolokvijuma • Zadaci • Teorija • Integralni ispit • Zadaci • Teorija
Literatura • Teorija: Programski jezici, Milena Stanković • Materijali u elektronskoj formi • Predavanja • http://www.etf.unssa.rs.ba/~snjeza • Vežbe • http://www.etf.unssa.rs.ba/~ognjen • Auditorne vežbe • Laboratorijske vežbe • Ispitni zadaci
Sadržaj predmeta • Razvoj i vrste programskih jezika • Sintaksa programskih jezika • Tipovi podataka • Osnovne upravljačke strukture • Strukturni tipovi podataka • Dinamičke strukture podataka • Potprogrami • Objektno orijentisani jezici • Internet i Web tehnologije
Razvoj i vrste programskih jezika • Pojam jezika • Definicija programskih jezika • Klasifikacija programskih jezika po stepenu zavisnosti od računara • Hronologija razvoja viših programskih jezika • Podela programskih jezika prema oblasti primene • Kriterijumi ocene programskih jezika • Karakteristike programskih jezika
Klasifikacija programskih jezika po stepenu zavisnosti od računara
Hronologija razvoja na osnovu prethodne klasifikacije • Mašinski kod • Heksadecimalni zapis mašinskog koda • Asemblerski jezici • Makroasemblerski jezici • Viši programski jezici (algoritamski ili proceduralni, strukturni jezici) • Problemu orijentisani programski jezici
Asembleri • Asemblerske naredbe – simbolički zapisane mašinske naredbe
FORTRAN • FORmula TRANslation • Prva verzija 1957. godine • FORTRAN IV 1962. godine • FORTRAN 77 1977. godine • FORTRAN 90 1990. godine • FORTRAN 95 1995. godine • FORTRAN 2003 2003. godine • FORTRAN 2008 2008. godine • Najpogodniji jezik za razvoj naučno-tehničkih aplikacija
COBOL • COmmon Business Oriented Language • Prva verzija 1959. godine • Podržan od vodećih kompanija (IBM, Honeywell, Flow-Matic) • Pogodan za razvoj poslovnih aplikacija
ALGOL • ALGOrithmic Language • Algol60, 1960. godine • Nije doživio značajnu primenu u praksi • Najznačajniji je za razvoj teorije programskih jezika • Koncepti Algola prepoznatljivi su u najsavremenijim programskim jezicima
BASIC • Beginers All-purpose Symbolic Instruction Code • 1961. godina • Zamišljen kao jednostavnija varijanta FORTRAN-a • Velika popularnost sa pojavom PC računara osamdesetih godina • Danas veoma popularni VB, VB.NET
PASCAL • Početak sedamdesetih godina • Zamišljen kao jednostavan jezik za obuku kadrova i učenje metodologije programiranja • Korijeni u jeziku Algol60 • Jako značajan za prihvatanje ideje strukturnog programiranja
ADA • Nastaje osamdesetih godina • Podrška američkog ministarstva odbrane • Projektovan sa idejom da preuzme primat • Nije doživio predviđenu praktičnu primjenu • Jako značajan za teoriju programskih jezika • Model jezika na osnovu koga se danas postavljaju svi značajniji koncepti programskih jezika • Najbolje zadovoljava potrebe nastave iz programskih jezika
Programski jezik C • Nastaje 1970. godine • Jezik za razvoj UNIX-a • ANSI C • Sprega sa hardverom • Pogodan za razvoj komponenti sistemskog softvera i u drugim primenama gde je potrebna sprega sa resursima sistema • Objektna nadgradnja C++, C#
SMALLTALK • Prvi potpuno objektno-orijentisan jezik Smalltalk-80 • Koreni objektnih jezika u jeziku Simula 67 • Današnji savremeni jezici su skoro svi objektno-orijentisani • Kombinacija objektnog i vizuelnog programiranja • Event Driven Programming • Visual Basic, Visual C++, Java, C#
Jezici u oblasti veštačke inteligencije • LISP - LISt Processing • Prva verzija 1958. godine • PROLOG – PROgramming LOGic • Nastaje sedamdesetih godina
Podela programskih jezika prema oblasti primene • Jezici za naučne aplikacije • Jezici za poslovne aplikacije • Jezici veštačke inteligencije • Jezici za razvoj sistemskog softvera • Jezici za računarske komunikacije • Jezici specijalne namene
Kriterijumi ocene programskih jezika • Čitljivost • Jednostavnost • Ortogonalnost • Upravljačke strukture • Strukture podataka • Sintaksa • Jednostavnost pisanja programa • Jednostavnost i ortogonalnost • Podrška apstrakciji podataka • Izražajnost
Kriterijumi ocene programskih jezika • Pouzdanost jezika • Tipovi podataka • Obrada izuzetaka • Pseudonimi (aliasing) • Efikasnost jezika • Efikasnost programa napisanog na određenom programskom jeziku • Efikasnost kompilatora • Efikasnost razvojnog okruženja (svi potrebni alati za brzi razvoj aplikacija)
Karakteristike programskih jezika • Formalno definisana sintaksa programskog jezika • Jaki tipovi podataka • Strukturni tipovi podataka • Upravljačke strukture • Potprogrami • Moduli • Mehanizmi za konkurentno programiranje • Mehanizmi niskog nivoa • Mehanizmi za obradu grešaka • Standardni skup U/I procedura
Pitanja ???
Pitanja - ponavljanje Šta je programski jezik? Kako se vrši klasifikacija programskih jezika po stepenu zavisnosti od računara? Nabrojati klase mašinski zavisnih jezika. Nabrojati klase mašinski nezavisnih jezika. Šta je kompilator? Šta je interpretator? Šta je asembler? Šta je makroprocesor? Koji programski jezik je najpogodniji za razvoj naučno-tehničkih aplikacija? Koji programski jezik se smatra najvažnijim za prihvatanje ideje strukturnog programiranja? Koji programski jezik se smatra prvim potpuno objektno orijentisanim jezikom? U kojim oblastima je pogodno koristiti programski jezik C?