Цель дисциплины:
Курс по формальным языкам и трансляциям призван познакомить студентов с трансляторами и компиляторами. В рамках курса студенты изучают разные грамматики и парсеры и учатся применять их для решения задач. Данный курс полезен и для понимания устройства используемых ими языков программирования. Изучаемый аппарат востребован в других курсах, изучаемых в бакалавриате.
Учебные задачи дисциплины:
- ознакомление слушателей с задачами, принципами, методами и подходами теории формальных языков и трансляций;
- приобретение слушателями теоретических знаний, и практических умений и навыков в области формальных языков и трансляций.
В результате освоения дисциплины «Формальные языки и трансляции» обучающийся должен:
знать:
- связь между языками и грамматиками;
- классификацию языков и грамматик;
- регулярные языки;
- детерминированные и недетерминированные конечные автоматы;
- машину Тьюринга;
- контекстно-свободные грамматики;
- восходящие и нисходящие анализаторы;
- LL(k)-грамматики и анализаторы;
- LR(k)-грамматики и анализаторы;
- контекстно-свободные грамматики;
- контекстно-зависимые грамматики;
- применение грамматик в современных компиляторах.
уметь:
- делать правильные выводы из сопоставления результатов теории и эксперимента;
- определять достаточный для решения задачи класс грамматик;
- строить грамматику для языка;
- находить язык, порождаемый грамматикой;
- строить таблицы LL(k)- и LR(k)-анализаторов;
- использовать генераторы парсеров для построения анализаторов для грамматики.
владеть:
- навыками самостоятельной работы в современных программных комплексах;
- навыками освоения большого объёма информации;
- навыками использования генераторов синтаксических анализаторов.