VM осень 2017 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: «== Лекции == Преподаватель: Николай Иготти (igotti (at) gmail.com) Освещаемые вопросы: [https://docs.google.com/…»)
 
м
Строка 25: Строка 25:
  
 
== Задание 3 ==
 
== Задание 3 ==
Реализовать интерпретатор байткода полученного транслятором в Задании 2, позволяющий исполгнять программы на MathVM.  
+
Реализовать интерпретатор байткода полученного транслятором в Задании 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

Экзамен

Вопросы

Конспект