VM осень 2017 — различия между версиями
Eakimov (обсуждение | вклад) м |
Eakimov (обсуждение | вклад) |
||
Строка 10: | Строка 10: | ||
Код ваших решений для заданий 1,2,3 будет собираться и запускаться в docker контейнере wtf42/mathvm (ubuntu 16.04 с пакетами python make g++) на архитектуре x86-64. Задание 4 будет проверяться в ubuntu 16.04 с пакетами python make g++ libsdl-dev. | Код ваших решений для заданий 1,2,3 будет собираться и запускаться в docker контейнере wtf42/mathvm (ubuntu 16.04 с пакетами python make g++) на архитектуре x86-64. Задание 4 будет проверяться в ubuntu 16.04 с пакетами python make g++ libsdl-dev. | ||
− | Для того, чтобы сдать задание нужно закоммитить ваш код в репозиторий до дедлайна, пул-реквесты и прочие сообщения писать не нужно. Результаты будут появляться в | + | Для того, чтобы сдать задание нужно закоммитить ваш код в репозиторий до дедлайна, пул-реквесты и прочие сообщения писать не нужно. Результаты будут появляться в [https://docs.google.com/spreadsheets/d/1cntNMgGyBQ23veIEie1d1ici--qdkqpTUJSpwH5aFeg/edit табличке]. |
Пожалуйста, если меняете файлы не из своей директории, то делайте это отдельным коммитом. | Пожалуйста, если меняете файлы не из своей директории, то делайте это отдельным коммитом. | ||
Строка 29: | Строка 29: | ||
== Задание 4 == | == Задание 4 == | ||
− | + | JIT | |
== Экзамен == | == Экзамен == |
Версия 22:55, 28 сентября 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.
Для того, чтобы сдать задание нужно закоммитить ваш код в репозиторий до дедлайна, пул-реквесты и прочие сообщения писать не нужно. Результаты будут появляться в табличке.
Пожалуйста, если меняете файлы не из своей директории, то делайте это отдельным коммитом.
Задание 1
Реализовать код для трансформации AST назад в исходный код, автоформаттер. Ваша программа должна получив на вход программу на языке MathVM (см. гитхаб) вывести эквивалентный исходный код. Основная цель задания - освоится с окружением и кодовой базой.
Задание 2
Реализовать код для трансформации AST в байткод, который описан в заголовке mathvm.h. Ваша программа должна получив на вход программу на языке MathVM и напечатать получившийся байткод. Для целей отладки, можно параллельно делать Задание 3, интерпретатор.
Задание 3
Реализовать интерпретатор байткода полученного транслятором в Задании 2, позволяющий исполнять программы на MathVM. Для тестирования в каталоге tests есть expect файлы, описывающие ожидаемый вывод.
Задание 4
JIT