Cilj i ishod predmeta
Ovladavanje konceptima i tehnikama projektovanja programskih jezika. Stečena znanja omogućuju projektovanje i implementaciju konkretnih programskih jezika kao i osnovu za dalji istraživački rad u ovoj oblasti.
Teorijska nastava
Spektar programskih jezika. Prevođenje i interpretacija. Sintaksa programskog jezika. Regularni izrazi i bezkontekstne gramatike. Skeneri i parseri. Imena, domeni i povezivanja. Pojam vremena povezivanja. Upravljanje vremenom života i memorijom objekta. Pravila domena. Povezivanje okruženja. Semantička analiza. Atributivna gramatika. Tokovi atributa. Prostorno upravljanje atributima. Markiranje sintaksnog stabla. Računarska arhitektura na nivou asemblera. Hijerarhija memorije. Predstavljanje podataka. Arhitektura skupa instrukcija. Prevođenje za savremene procesore. Kontrola toka. Izračunavanje izraza. Struktuirani i nestruktuirani tok. Sekvencioniranje. Selekcija. Iteracija. Rekurzija. Nedeterminisanost. Tipovi podataka. Provera tipova. Zapisi i varijante. Vektori. Stringovi. Pokazivači i rekurzivni tipovi. Liste. Datoteke i ulaz/izlaz. Testiranje jednakosti i dodeljivanja. Potprogrami i apstrakcija kontrole. Konfiguracija steka. Pozivne sekvence. Prenos parametara. Generički potprogrami i moduli. Obrada grešaka. Izrada izvršnih programa.
Studijski istraživački rad
Deo nastave na predmetu se odvija kroz samostalni studijski istraživački rad koji obuhvata pisanje rada ili implementacije nekog konkretnog rešenja iz oblasti programskih jezika.