Описание:Рассматриваются методы разработки компиляторов, основанные на теории формальных языков и грамматик. Полугодовой курс продолжает курс "Теория формальных языков и грамматик", прочитанный в первой половине учебного года. Рассматриваются нисходящий и восходящий алгоритмы разбора, утилиты LEX и YACC, предназначенные для создания сканеров и парсеров, и различные практические задачи, решаемые с их помощью. В финале курса рассматривается компилятор и интерпретатор модельного алгоритмического языка Дельта, разработанный с помощью применения утилит LEX и YACC. Язык Дельта является, подобно языку Python, алгоритмическим языком с динамической типизацией и исполнением промежуточного кода, являющегося языком виртуальной стековой машины. Синтаксис языка Дельта объединяет черты языков C++ и Python (при этом ближе к C++).