Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Контрольные работы » Розробка аналізує частини компілятора мови З

Реферат Розробка аналізує частини компілятора мови З





ї програми зліва направо з загляданням вперед на один термінальний символ (лексичний клас). p align="justify"> Вхід синтаксичного - послідовність лексем і таблиці, наприклад, таблиця зовнішніх уявлень, які є виходом лексичного аналізатора.

Вихід синтаксичного аналізатора - дерево розбору і таблиці, наприклад, таблиця ідентифікаторів і таблиця типів, які є входом для наступного перегляду компілятора (наприклад, це може бути перегляд, який здійснює контроль типів).

Для реалізації синтаксичного аналізатора обраний генератор аналізаторів GNU Bison. На вході даного генератора - опис граматики в БНФ, на виході - аналізує модуль на мові Сі.інтегрірован з Flex і отриманий з його допомогою аналізатор використовує в якості входу результати викликів функції yylex (). (Bison)-файл складається з трьох секцій - опису токенів, опису граматики і коду на Сі.

Код на Сі обов'язково повинен включати в себе реалізацію функції yyerror, яка є обробником помилок.

Опис токенів містить просто список можливих типів токенів. При генерації коду кожному типу токенів буде присвоєно унікальне значення типу yylval, яке і повертає yylex (). p align="justify"> Опис граматики містить в собі набір правил у БНФ і код на Сі, наприклад, для побудови дерева розбору, обробний кожне правило.

Приклад:

_expression/* Ok */

: postfix_expression {$ $ = $ 1;}

| INC_OP unary_expression {$ $ = makeTreeNode ($ 1, $ 2);}

| DEC_OP unary_expression {$ $ = makeTreeNode ($ 1, $ 2);}

| unary_operator cast_expression {$ $ = makeTreeNode ($ 1, $ 2);}

| SIZEOF unary_expression {$ $ = makeTreeNode ($ 1, $ 2);}

| SIZEOF '(' type_name ')' {$ $ = makeTreeNode ($ 1, $ 3);}

;


Змінні $ 1, $ 2 і т. д. в коді на Сі відповідають токені у вираженні, змінна $ $ - результат, який буде використаний при обробці вираження більш високого рівня. При збірці аналізує частини виходить файл c.parser.h, що містить LR-аналізатор на мові Сі. Аналізатор запускається викликом функції yyparse (). По завершенні аналізу функція повертає 0, якщо програма не містить синтаксичних помилок, або 1, якщо помилки є. br/>В 

Рисунок 3 - приклад роботи лексичного аналізатора


В 

Малюнок 4-розбір керуючої конструкції


В 

Рисунок 5 - приклад роботи синтаксичного аналізатора (з помилками)

3. Семантичний аналізатор


Фаза контролю типів перевіряє, чи задовольняє програма контекстним умов. Головною складовою контекстних умови є "правильне використання" програмою типів даних, що надаються вхідним мовою, тобто коректність виразів, що зустрічаються ...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка алгоритму роботи синтаксичного аналізатора тексту, а також бази да ...
  • Реферат на тему: Використання в'язкопружного моделі матеріалу зі спектром часів релаксац ...
  • Реферат на тему: Розробка функціональної схеми аналізатора частотного спектру генератора зву ...
  • Реферат на тему: Конвертер програми з підмножини мови Сі в Паскаль з використанням LL (1) ме ...
  • Реферат на тему: Програма управління базою даних, яка містить інформацію про читачів, книгах ...