Model programming language compiler. The application includes lexical, syntactic, semantic analysis and translation into Polish inverse notation. The result of the application is to search for errors in the written code and translate the model language into a low-level language (NASM) with the ability to compile into an executable file.
The grammar of the language is described in the file grammar.txt, which lists all terminal and non-terminal symbols and rules of the language.
- Lexical, syntactic and semantic analysis;
- Translation into Polish inverse recording;
- Conversion to assembly code;
- Compiling exe file.
- Python;
- Assembler (NASM).
Компилятор модельного языка программирования. Приложение включает в себя лексический, синтаксический, семантический анализ и трансляцию в польскую инверсную запись. Результатом работы приложения является поиск ошибок в написанном коде и перевод модельного языка в низкоуровневый язык с последующим преобразованием в исполняемый файл.
Подробное описание работы представлено здесь.
Грамматика языка описана в файле grammar.txt, где перечисляются все терминальные и нетерминальные символы и правила языка.
Исходный текст разбивается на лексемы и проверяется их корректность.
По правилам грамматики строится матрица операторного предшествия и последовательность лексем проверяется на соответствие этим правилам.
Проверяется соответствие типов и существование переменных.
Для перевода в польскую инверсную запись используется алгоритм Замельсона и Бауэра.
Для перевода в ассемблер NASM используется алгоритм, считывающий поэлементно ПОЛИЗ и генерирующий ассемблерный код в соответствии со встретившимся элементом.
- Лексический, синтаксический и семантический анализ;
- Трансляцию в польскую инверсную запись;
- Преобразование в ассемблерный код;
- Компиляция exe файла.