Максимальный балл: | 20 | Ограничение времени: | 1 сек | |
Ограничение памяти: | 512 Мб |
Требуется написать программу, генерирующую оптимизированный код на основе аннотированного абстрактного синтаксического дерева и, возможно, сгенерированного неоптимизированного кода, полученного из подмножества выбранного вами языка программирования.
Дальнейшие шаги по компиляции и тестированию кода аналогичны заданию "Генерация кода".
Оптимизатор состоит из одного или более оптимизирующих преобразований, каждое из которых оценивается отдельными баллами.
Компилятор должен иметь отдельные ключи, включающие каждое преобразование, а также ключ "включить все оптимизации".
Тесты НЕ должны проверять текстовое содержимое сгенерированного кода. Вместо этого они должны запускать полученные исполняемые модули и сравнивать полученный от них вывод с выводом, полученным без оптимизации.
Рекомендуется в первую очередь рассмотреть следующие оптимизации:
Отправьте ссылку на конкретный коммит в репозитории на Github, например
https://github.com/klenin/cats-main/commit/dce22c8348808959881ed7d6852c520a41e47c9a
В качестве среды разработки укажите Answer text.
Выходные данные должны быть файлом на языке низкого уровня или исполняемым файлом в зависимости от выбранного режима.