Програмски преводиоци

Настанак виших програмских језика и програмских преводилаца. Класификација компајлера. Евалуација компајлера. Актуелни изазови пред развојем компајлера. Компајлерске инфраструктуре (GCC, LLVM). Теорија формалних језика (граматике, хијерархија Чомског). Лексичка анализа (основни алгоритам скенирања, основне дилеме, регуларни изрази, недетерминистички и детерминистички коначни аутомати, табеларна имплементација коначних аутомата, Lex). Семантичка анализа (контексно слободне граматике, вишесмисленост и превазилажење, приступи обради грешке у парсирању, апстрактно синтаксно стабло, рекурзивно силазно парсирање, лева рекурзија и превазилажење, предиктивно парсирање, LL1 табела, узлазно парсирање, Yacc). Семантичка анализа (опсег, табела симбола, окружење типа, тип методе, статичка и динамичка контрола типа). Генерисање кода (организација извршавања, активациони запис, алоцирање, поравнање, стек машина, архитектура MIPS). Основи оптимизације кода (правила евалуације, међукод, базични блок, граф контроле тока, локална и глобална оптимизација).

Рачунарски факултет Рачунарски факултет 011-33-48-079