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

Реферат Розробка компілятора мови С + +





того, що в {}) викликається рекурсія.

if (Lexemes [i]. body == "struct")

{add_tabs (dest, tabs); <<"struct" <<' n'; + +; i + +; (Lexemes [i]. type == "Ідентифікатор" ;)

{ tabs -;

{//i + +;

i = MakeBinTree (dest, tabs, tabs, i, 1, "@ # $% ^ & (", tecFN);// виклик рекурсії для того, що в {} + +;

// tabs -;

} (Lexemes [i]. type == "Ідентифікатор")// 18:48 додала умова, щоб виводилися об'єкти структури

{while (Lexemes [i]. type == "Ідентифікатор" | | Lexemes [i]. body == ",")

{if (Lexemes [i]. type == "Ідентифікатор")

{add_tabs (dest, tabs); <

} + +;

}

} -;

}


Спочатку дерево записується в текстовий файл, як тільки програма аналізує весь масив, дані з текстового файлу завантажуються в об'єкт TreeView.

Для запису об'єкта в текстовий файл використовується функція add_tabs.


void add_tabs (ofstream & dest, int tabs)

{//передаю рівень, йду по циклу ставлю табуляцію

for (int j = 0; j

dest <<' t';

}


В результаті розбору будується синтаксичне дерево Малюнок 4.

Синтаксичні помилки включають невірно поставлені крапки з комою або зайві відсутні дужки, відсутність умов (для оператора while), відсутність тіла (switch, while, do while), невірне колічесво параметрів (for), невизначений тип ( якщо змінна не була оголошена).


В 

Рисунок 4 - Результат роботи синтаксичного аналізатора


В 

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


Семантичний аналіз


Семантичний аналіз - третя фаза компіляції. Так як на етапі синтаксичного аналізу немає достатньої інформації про типи, парсер перевіряє лише формальну коректність послідовності токенів. Завдання семантичного аналізу полягає в тому, щоб сконструювати користувача типи і проконтролювати відповідність типів в програмі. У разі, коли типи не збігаються, але можливо неявне приведення, семантичний аналізатор повинен вбудувати функції приведення типів в абстрактне синтаксичне дерево, отримане на вході. p align="justify"> Так як за фактом виконується не що інше, як обхід дерева, семантичний аналіз реалізується набором рекурсивних функцій для обходу блоків, абстрактного синтаксичного дерева і для перевірки коректності типу даних В«ЗаписВ», тому що він теж має деревоподібну структуру.


В 


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





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

  • Реферат на тему: Розробка аналізує частини компілятора мови З
  • Реферат на тему: Процес создания компілятора вхідної мови
  • Реферат на тему: Реалізація компілятора усіченого мови Pascal з використанням технології авт ...
  • Реферат на тему: Білки злакових. Їх біолого-фізіологічне значення. Порушення травлення, що ...
  • Реферат на тему: Проектування компілятора