Предмет | Програмски преводиоци |
---|---|
Модул | Информациони системи и технологије |
Статус предмета | Изборни предмет |
Катедра | Катедра за информационе системе |
Број ЕСПБ бодова | 5 |
У оквиру овог предмета студенти стичу потребна теоријска и практична знања о програмским преводиоцима и развијеним алатима за њихову имплементацију.
Стечена знања о концептима и карактеристикама савремених преводилаца омогућавају студентима да објасне и анализирају начине имплементације програмских језика, што директно утиче и на избор одговарајућих језика и њихову примену у пројектовању савремених софтверских апликација. Поред тога, стечена знања о развијеним алатима заснованим на генераторима парсера студенти могу применити у развоју и имплементацији доменско-специфичних језика.
Предавања праћена одговарајућим електронским презентацијама. На вежбама студенти добијају практична знања о концептима и карактеристикама програмских преводилаца и развијеним алатима за њихову имплементацију.
Теоријска настава
Увод у програмске преводиоце. Лексичка анализа: регуларни изрази и коначни аутомати. Синтаксна анализа. Врсте парсера: парсирање одоздо на горе и одозго на доле. Семантичка анализа. Извршно окружење. Генерисање међукода. Генерисање кода. Оптимизација кода. Интерпретери и Хибридни имплементациони системи. Преглед алата за генерисање скенера и парсера. Коришћење алата заснованих на генераторима парсера за развој и имплементацију изабраног доменско-специфичног језика.
Практична настава
Вежбе прате предавања. На вежбама студенти добијају практична знања о концептима и карактеристикама програмских преводилаца и развијеним алатима за њихову имплементацију.
- Aho A.V., Lam M.S., Sethi R., Ullman J.D. Compilers: Principles, Techniques, and Tools, Second edition Addison-Wesley 2006
- Mogensen T. Introduction to Compiler Design, Second edition Springer International Publishing 2017