Page 213 - 149
P. 213
На рисунку 10.7 представлено логічна структура компілятора. Штихові
стрілки зображують інформаційні потоки, тоді як суцільні стрілки вказують
на порядок роботи програмних компонентів компілятора. Процес компіляції
складається з двох етапів: аналізу вихідної програми і синтезу об’єктної
програми. На етапі аналізу реалізується ділення тексту на складові частини, а
на етапі синтезу з них будують частини еквівалентної об’єктної програми.
При цьому на етапі аналізу компілятор будує декілька інформаційних
таблиць, які в процесі компіляції використовується на всіх етапах. Одною з
центральних таблиць є таблиця символів. Вона складається з елементів, які
відповідають всім різновидам ідентифікаторів, які зустрічаються у вихідній
програмі. Лексичний аналізатор створює початкові елементи шляхом
поступового сканування вихідної програми. Елементи таблиці символів
містять назву ідентифікаторів вихідного тексту МП-програми, додаткові
відомості про ці ідентифікатори: тип(проста змінна, масив тощо), тип значень
даних(ціле, дійсне число тощо) і т.д. семантичний аналізатор вносить цю
інформацію в таблицю символів поступово в порядку обробки декларацій,
заголовків програм та інструкцій. Синтезуюча частина компілятора
використовує інформацію таблиці символів для побудови ефективного
об’єктного коду цільової МП-програми. Поряд з таблицями символів
будуються таблиці констант, таблиці циклів тощо.
Аналіз Інформаційні таблиці
Вихідний текст Лексичний аналізатор
програми
Таблиця символів
Синтаксичний і
семантичний Таблиця констант
аналізатори
Таблиця циклів
Генерація кодів Інші таблиці
Синтез
Компілятор
Об’єктна програма
Рисунок 10.7- Логічна структура компілятора
Інтерпретатори
192