VM осень 2017 — различия между версиями
Eakimov (обсуждение | вклад) (Новая страница: «== Лекции == Преподаватель: Николай Иготти (igotti (at) gmail.com) Освещаемые вопросы: [https://docs.google.com/…») |
Eakimov (обсуждение | вклад) м |
||
Строка 25: | Строка 25: | ||
== Задание 3 == | == Задание 3 == | ||
− | Реализовать интерпретатор байткода полученного транслятором в Задании 2, позволяющий | + | Реализовать интерпретатор байткода полученного транслятором в Задании 2, позволяющий исполнять программы на MathVM. |
Для тестирования в каталоге tests есть expect файлы, описывающие ожидаемый вывод. | Для тестирования в каталоге tests есть expect файлы, описывающие ожидаемый вывод. | ||
Версия 11:04, 15 сентября 2017
Лекции
Преподаватель: Николай Иготти (igotti (at) gmail.com)
Освещаемые вопросы: здесь
Практика
Репозиторий на гитхабе. Присылайте запросы на почту для добавления в коллабораторы.
Код ваших решений для заданий 1,2,3 будет собираться и запускаться в docker контейнере wtf42/mathvm (ubuntu 16.04 с пакетами python make g++) на архитектуре x86-64. Задание 4 будет проверяться в ubuntu 16.04 с пакетами python make g++ libsdl-dev.
Для того, чтобы сдать задание нужно закоммитить ваш код в репозиторий до дедлайна, пул-реквесты и прочие сообщения писать не нужно. Результаты будут появляться в табличке [TODO].
Пожалуйста, если меняете файлы не из своей директории, то делайте это отдельным коммитом.
Задание 1
Реализовать код для трансформации AST назад в исходный код, автоформаттер. Ваша программа должна получив на вход программу на языке MathVM (см. гитхаб) вывести эквивалентный исходный код. Основная цель задания - освоится с окружением и кодовой базой.
Задание 2
Реализовать код для трансформации AST в байткод, который описан в заголовке mathvm.h. Ваша программа должна получив на вход программу на языке MathVM и напечатать получившийся байткод. Для целей отладки, можно параллельно делать Задание 3, интерпретатор.
Задание 3
Реализовать интерпретатор байткода полученного транслятором в Задании 2, позволяющий исполнять программы на MathVM. Для тестирования в каталоге tests есть expect файлы, описывающие ожидаемый вывод.
Задание 4
TODO