Skip to content

Latest commit

 

History

History
36 lines (33 loc) · 3.74 KB

README.md

File metadata and controls

36 lines (33 loc) · 3.74 KB

Курсовой защищён на отметку 10, причём его особо не смотрели.
Задание 34241:

  • Типы данных: целочисленный, символьный. Дополнительно: логический, строковый
  • Операции сравненения: >, <, ==, !=, >=, <=. Дополнительно: +, -
  • Литералы: логические, строковые, символьные. Дополнительно: целые (10-ричное)
  • Функции стандартной библиотеки: лексикографическое сравнение строк; возведение числа в степень
  • Инструкции: ветвление, цикла
  • Дополнительно: константы , комментарии, система тестирования, свой синтаксис для notepad++

Как украсть?

  1. Качаем репозиторий
  2. В настройках проекта меняем выходной каталог на путь до папки result
  3. В проекте BPA-testing меняет значение двух констант на пути до .exe файла, и до папки с тестовыми данными (result/TEST_CASES)

Как запускать?

Либо через консоль, обращаемся к .exe файлу с передачей параметров; обязательный -in:
Либо через запуск проекта BPA-testing (прогонит сразу все тесты)
Либо можно указать в настройках основного проекта в пункте Отладка аргументы для запуска, делаем аналогично запуску через консоль
На выходе вы получите .log и .asm в папке с входным файлом, код ассемблера просто копируете в проект BPA-asm.

Известные проблемы

  • Осторожнее со вложеностью конструкций, например if внутри if скорее всего будет приводить к ошибке в ассемблере, это исправляется изменением флагов в CodeGeneration.cpp из логических в целочисленные.
  • Вызов функции в другой функции иногда вызывает ошибку, а иногда нет, как показано в test_2.txt
  • Местами вставленны костыли, например в лексическом анализе при логических литералах. При внесеннии изменений будьте бдительны!
  • У курсача была гнилая основа, а потому и возникали многие трудности, вам осталось переписать не так много, и будет счастье не только вам, но и будующим поколениям.

Этот проект презентавался на лекции, и вроде как Наркевич его хорошо запомнила, так что перед сдачей советую внести изменения, в частности вырезать константы, если вы не шарите).

Если вам нужна будет помощь, можете обращаться по контактам в профиле гитхаба.