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

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





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

Зрозуміло, що ми не можемо переконатися в правильності використання типів в якій-небудь конструкції до тих пір, поки не визначимо типи всіх її складових частин. Наприклад, для того, щоб з'ясувати правильність оператора привласнення ми повинні знати типи його одержувача (лівій частині) і джерела (правої частини). Для того, щоб з'ясувати, який тип ідентифікатора, який є, наприклад, одержувачем присвоювання, ми повинні зрозуміти, яким чином цей ідентифікатор був оголошений в програмі. p align="justify"> Кожне входження ідентифікатора в програму є або визначальним, або використовують. Під визначальним входженням ідентифікатора розуміється його входження в опис, наприклад, int i. Всі інші входження є використовують, наприклад, i = 5 або i +13. p align="justify"> Мета ідентифікації ідентифікаторів, визначити тип використовує входження ідентифікатора. Це завдання може бути повністю або частково вирішена на фазі синтаксичного аналізу. Все залежить від того, чи може використовує входження ідентифікатора зустрітися в програмі до визначального входження чи ні. Якщо всі визначальні входження ідентифікаторів повинні бути розташовані текстуально перед використовують входженнями, то ми можемо виконати ідентифікацію на фазі синтаксичного аналізу. Якщо ж ні, то на фазі синтаксичного аналізу ми можемо обробити визначають входження ідентифікаторів і тільки на наступному перегляді тексту програми виконати власне ідентифікацію. p align="justify"> Семантичний аналізатор реалізований методом рекурсивного спуску. Перегляд ведеться від початку дерева. p align="justify"> Алгоритм для одного рівня наступний:

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

Малюнок 6 - приклад роботи семантичного аналізатора (без помилок)


В 

Малюнок 7 - приклад роботи семантичного аналізатора (з помилками)

компілятор аналізатор граматика мову


Висновок

<...


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





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

  • Реферат на тему: Входження в нову галузь
  • Реферат на тему: Входження людини в організацію
  • Реферат на тему: Входження на посаду заступника головного бухгалтера
  • Реферат на тему: Причини входження України до складу Росії
  • Реферат на тему: Входження на посаду начальника планово-економічного відділу