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

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





p align="justify"> Вхідні дані поміщаються в масив vector sym_table (посимвольний).

Структура symbol передає символ, рядок, стовпець, довжину символу і позицію від початку.

Вихідні дані формуються у масиві vector scaner_result.

Структура cell містить опис типу, саму лексему, рядок, стовпець, довжину лексеми і позицію від початку.

Символ з масиву sym_table перевіряється на приналежність до певного класу лексем, якщо функція повертає значення істина, то символ листується в змінну curr_cell (об'єкт структури cell) і переходимо до наступного символу, так само перевіряємо на приналежність до цього ж класу лексем, якщо функція повертає значення брехня, то записуємо дані із змінної curr_cell в масив scanner_result, Обнуляємо змінну curr_cell, перевіряємо чи є в масиві sym_table ще символи, якщо він не порожній, то переходимо до наступного.

Дані про помилки зберігаються в масиві error_result.

Як тільки масив sym_table виявився порожній, дані з масивів scanner_result і error_result виводяться в таблиці.

Вихідний код програми, вибраної для розбору, представлений у Додатку А. Результат розбору коду лексичним аналізатором представлений на малюнку 1.



В 

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


У фазі лексичного аналізу можливі наступні помилки - не закрито коментар, незавершена рядок, помилка у визначенні речовій константи, помилка у визначенні символьної константи.

Так В«область видимостіВ» лексичного аналізатора вузька, то без допомоги інших компонентів компілятора йому досить складно виявити помилки в початковому тексті програми, наприклад, якщо в програмі токен F вперше зустрівся в контексті F = a * 33. Оскільки F є коректною лексемою, лексичний аналізатор повинен повернути цей токен синтаксичному аналізатору, який у свою чергу повинен обробити помилку В«Невизначений типВ». br/>В 

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


Отримана послідовність токенів, записана в масив scaner_result передається синтаксичному аналізатору. Компілятор переходить до наступної фази. br/>

Синтаксичний аналіз


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


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





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

  • Реферат на тему: Розробка алгоритму роботи синтаксичного аналізатора тексту, а також бази да ...
  • Реферат на тему: Синтаксичний аналізатор
  • Реферат на тему: Організація вводу-виводу. Обробка масивів. Структуровані дані
  • Реферат на тему: Способи введення і закріплення лексичного матеріалу на середньому етапі нав ...
  • Реферат на тему: Експертні помилки в контексті загального поняття терміну "Помилка" ...