Skip to content

Own programming language. Special for course project.

Notifications You must be signed in to change notification settings

PaulBykov/BPA-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Курсовой защищён на отметку 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
  • Местами вставленны костыли, например в лексическом анализе при логических литералах. При внесеннии изменений будьте бдительны!
  • У курсача была гнилая основа, а потому и возникали многие трудности, вам осталось переписать не так много, и будет счастье не только вам, но и будующим поколениям.

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

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

About

Own programming language. Special for course project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published