Задание:
Компилятор представляет собой ключевой элемент в разработке программного обеспечения, обеспечивая перевод кода, написанного на высоком уровне, в машинный. В рамках исследования реализован компилятор усеченного языка Pascal, что позволило углубиться в основы языков программирования и процессы компиляции. Проект начался с анализа синтаксиса и семантики языка, где определены основные конструкции, такие как операции присваивания и условные операторы.
Для реализации компиляции использовалась технология автоматизации, что значительно упростило процесс разработки. В качестве первой стадии был создан лексический анализатор, отвечающий за разбиение исходного кода на токены. Эта задача была выполнена с помощью регулярных выражений, что позволило с высокой эффективностью выявлять ключевые слова, идентификаторы и знаки пунктуации.
Следующим шагом стал синтаксический анализ, где применялись методы построения дерева разбора для структуры языка. Использовав алгоритм сниженной грамматики, обеспечивался анализ правил и построение абстрактного синтаксического дерева. Этот этап был критически важен для дальнейшей трансляции в промежуточный код.
На этапе генерации кода реализована трансляция абстрактного синтаксического дерева в ассемблер, что обеспечило выполнение скомпилированных программ на заданной платформе. Основные ошибки, возникающие при компиляции, обрабатывались через детализированное сообщение пользователю, что помогает в устранении неполадок.
В результате работы был получен компилятор, способный обрабатывать базовые конструкции языка и компилировать их в исполняемый код. Этот проект стал отличной возможностью для практического применения теоретических знаний, полученных в рамках изучения компиляции и языков программирования. Результаты работы могут быть использованы как основа для дальнейших исследований и расширения функциональности компилятора.