Головна

Структура транслятора

  1. Cклад та структура витрат та структура витрат на виробництво і реалізацію продукції
  2. Dasein-анализ Л. Бинсвангера. Структура существования: бытие-в-мире, бытие-за-пределами-мира.
  3. II. Структура
  4. II. СТРУКТУРА ДИПЛОМНОЙ РАБОТЫ
  5. II. Структура и численность совета
  6. II. Структура класу та взаємостосунки.
  7. II. Структура реферата
                   
Вхідний текст програми   è Лексичний аналіз   è Синтаксичний аналіз   è Семантичний аналіз   è Оптимізація проміжного коду   è
             
    Бази даних (таблиці) мовного процесора  
     
    è Генерація коду   è Вихідний (об'єктний) код          

Призначення основних компонентів транслятора:

- Лексичний аналізатор.

Вхід: вхідний текст (послідовність літер) програми.

Вихід: послідовність лексем програми.

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

зарезервовані слова;

ідентифікатори;

числові константи (цілі та дійсні числа);

літерні константи;

рядкові константи;

коди операцій;

коментарі. Коментарі безпосередньо не несуть інформації щодо структури програми. В подальшому вони не використовуються, тобто не передаються синтаксичному аналізатору.

дужки та інші елементи програми.

- Синтаксичний аналізатор.

Вхід: послідовність лексем програми.

Вихід: - "Так" + синтаксична структура (синтаксичний терм) програми,

- "Ні" + синтаксичні помилки в програмі.

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

Вхід: Синтаксичний терм програми.

Вихід: - "Так" + семантична структура (семантичний терм) програми,

- "Ні" + семантичні помилки в програмі.

- Оптимізація проміжного коду.

Вхід: семантичний терм програми.

Вихід: оптимізований семантичний терм програми.

Оптимізація - це еквівалентне перетворення програми на основі певних критеріїв. Серед критеріїв оптимізації можна виділити оптимізацію по пам'яті та оптимізацію по швидкості виконання результуючої програми. В залежності від підходів по оптимізації програми можна розглядати машиннозалежні та машиннонезалежні методи оптимізації. На відміну від машиннонезалежних методів машиннозалежні методи оптимізації враховують архітектурні особливості ЕОМ, наприклад, наявність апаратного стека, наявність вільних регістрів тощо.

- Генерація об'єктного коду.

Вхід: семантичний терм програми.

Вихід: результуючий (об'єктний) код програми.

 



Мови програмування та мовні процесори | Скінчені автомати

Мінімізація детермінованих скінчених автоматів | Скінчені автомати та праволінійні граматики | Регулярні множини та регулярні вирази | Польський інверсний запис для регулярних виразів | Застосування скінчених автоматів при розробці лексичних аналізаторів | На основі поточного стану. | Методика програмування лексичних аналізаторів на основі скінчених автоматів. | Лабораторний практикум побудови лексичних аналізаторів. | Синтаксичний аналіз в мовних процесорах | Мал. 2. |

© um.co.ua - учбові матеріали та реферати