About Final assignment
Задание
Разработать язык программирования, который должен реализовать следующие компоненты:
Присваивание (оператор или операция), арифметические и логические операции.
Ветвление, включая вариант факультативного
else.Цикл
while.Поддержка целочисленного и логического типа данных.
Многострочные комментарии в стиле Си-подобных языков.
Это минимальные требования (на 4С). Что добавит баллы:
Вместо ветвление
if [then] elseконструируется операторif elif [elif]+ elseВместо цикла
while(или в дополнение к нему) конструируется циклfor.Реализуется вывод значений.
Одно дополнение позволяет получить 4В, любые два 5А.
Содержание работы
Разработка описания языка в терминах КС грамматики. Определение лексического состава языка.
Подготовить файлы *.l для Flex в соответствии с лексическим составом языка, выполнить синтаксическое описание языка в нотации Bison (файл *.y). Учесть приоритеты и ассоциативность бинарных операций.
Разработать функции, реализующие построение и вывод АСТ (AST Abstract syntax tree). Вывод АСТ осуществить в файл.
Получение промежуточного представления программы и генерация кода для него. (ссылка на README в репозитории эмулятора https://github.com/asurkis/risc-emulator
Оформление отчета с описанием выполненных действий, демонстрация работы компилятора для корректных и ошибочных программ.