Приём заказов:
Круглосуточно
Москва
ул. Никольская, д. 10.
Ежедневно 8:00–20:00
Звонок бесплатный

Разработка компилятора модельного языка

Диплом777
Email: info@diplom777.ru
Phone: +7 (800) 707-84-52
Url:
Логотип сайта компании Диплом777
Никольская 10
Москва, RU 109012
Содержание

Все проверки на соответствие входного текста кода программы лексема, требуемым грамматикой, выполняет функция «CheckLexema». Она возвращает «true» если лексема соответствует грамматике, в противном случае выдается ошибка компиляции. Как видно из РБНФ описания нетерминала «программа» нетерминал «описание» не является обязательным. Поэтому в коде процедуры «Prog» проверка на лексему «dim» выполняется не функцией «CheckLexema», а условным оператором «if». Если декларативная часть в программе присутствует, то будет осуществляться её синтаксический анализ, в противном случае начинается выполнение синтаксического анализа совокупности операторов, разделенных символом «;». Работа выполняется до тех пор, пока не будет встречена лексема «}» конца программы.
3.3 Контекстный анализ
Контекстные, семантические, проверки выполняются в парсере и сканере. Их можно разделить на две группы:
Проверки соответствия типов операндов;
Проверки употребления имен идентификаторов;
Для реализации данных проверок используется таблица идентификаторов, которая заполняется при синтаксическом анализе декларативной части программы. Таблица идентификаторов представляет собой односвязный список, объявление которого показано на рисунке 23.

Picture of Леонид Федотов
Леонид Федотов
Окончил НИУ ВШЭ факультет компьютерных наук. Сам являюсь кандидатом наук. По специальности работаю 13 лет, за это время создал 8 научных статей и 2 диссертации. В компании подрабатываю в свободное от работы время уже более 5 лет. Нравится помогать школьникам и студентам в решении контрольных работ и написании курсовых проектов. Люблю свою профессию за то, что это направление с каждым годом становится все более востребованным и актуальным.