Programski jezici

Download Report

Transcript Programski jezici

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%


Zadaci – 45%



Uspešno odbranjene laboratorijske vežbe su uslov za
polaganje ispita
Uslov za izlazak 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
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
Pojam jezika
Definicija 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
Makroprocesori
Kompilatori i interpretatori
Hibridni sistemi
Hronologija razvoja viših
programskih jezika
Hronologija razvoja viših
programskih jezika (nastavak)
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
FORTRAN - primer
COBOL




COmmon Business Oriented Language
Prva verzija 1959. godine
Podržan od vodećih kompanija (IBM,
Honeywell, Flow-Matic)
Pogodan za razvoj poslovnih aplikacija
COBOL - primer
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
ALGOL - primer
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
PASCAL - primer
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
ADA - primjer
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#
C - primer
SMALLTALK






Prvi potpuno objektno-orijentisan jezik
Smalltalk-80
Koreni objektnih jezika u jeziku Simula 67
Današnji savremeni jezici su skoro svi objektnoorijentisani
Kombinacija objektnog i vizuelnog
programiranja
Event Driven Programming
Visual Basic, Visual C++, Java, C#
SMALLTALK - primer
Microsoft Visual Studio
Jezici u oblasti veštačke inteligencije




LISP - LISt Processing
Prva verzija 1958. godine
PROLOG – PROgramming LOGic
Nastaje sedamdesetih godina
LISP - primer
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?