Programski jezici

Spektar programskih jezika. Prevođenje i interpretacija. Uvod u prevođenje. 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. Preopterećenje i srodni pojmovi. Semantička analiza. Atributivna gramatika. Tokovi atributa. Prostorno upravljanje atributima. Markiranje sintaksnog stabla. Računarska arhitektura na nivou asemblera. Makro arhitektura radne stanice. 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. Unutrašnja struktura prevodilaca. Intermedijalne forme. Generisanje koda. Organizacija adresnog prostora. Objektno programiranje. Enkapsulacija i nasleđivanje. Inicijalizacija i finalizacija. Metod dinamičkog povezivanja. Višestruko nasleđivanje. Neimperativni modeli programiranja. Funkcionalno programiranje. Logičko programiranje. Osnovi konkurentnog programiranja. Deljene memorije. Poboljšavanje koda. Optimizacija. Eliminacija redundanse u osnovnom bloku. Globalna redundansa i analiza protoka podataka. Poboljšanje petlji. Dodeljivanje registara. Primeri.

3007-programski-jezici