АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. APQC структура классификации процессов SM
  2. I. Общие критерии оценки рефератов и их структура
  3. I.2 Реформирование и современная структура банковской системы РФ.
  4. II. Структура Доклада
  5. II. Структура Переліку і порядок його застосування
  6. III. Диалектика: ее суть структура и альтернативы.
  7. III. Социальная структура и стратификация
  8. IV. Границы структурализма?
  9. IV.Структура, порядок изложения и оформления работы
  10. VI. Взаимодействие Церкви с государственными структурами и обществом в деятельности по реабилитации
  11. VII. СТРУКТУРА ЛИЧНОСТИ
  12. Административная структура ММЦ «Валко. Новая звезда»
                   
Вхідний текст програми   è Лексичний аналіз   è Синтаксичний аналіз   è Семантичний аналіз   è Оптимізація проміжного коду   è
             
    Бази даних (таблиці) мовного процесора  
     
    è Генерація коду   è Вихідний (об’єктний) код          

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)