Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



                   
Вхідний текст програми   è Лексичний аналіз   è Синтаксичний аналіз   è Семантичний аналіз   è Оптимізація проміжного коду   è
             
    Бази даних (таблиці) мовного процесора  
     
    è Генерація коду   è Вихідний (об’єктний) код          

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





Дата публикования: 2015-04-06; Прочитано: 388 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...