Page 30 - 4611
P. 30
2.3 Побудова трансляторів з точки зору комп’ютерної
лінгвістики
Завдання транслятора — зробити програму, написану мовою
програмування, зрозумілою для комп’ютера. Цього можна
досягнути двома способами: компіляцією або інтерпретацією.
Компілятор — це програма, що переводить програму у
еквівалентну програму на мову, зрозумілу для комп’ютера (рис.
2.1).
Рисунок 2.1 – Компілятор як чорний ящик
Процес компіляції складається з двох частин: аналізу та
синтезу. Аналізуюча частина компілятора розбиває вхідну
програму на складові елементи та створює проміжне
представлення вихідної програми. Синтезуюча частина з
проміжного представлення створює нову, цільову програму.
Інтерпретатор, як і компілятор, аналізує програму на вхідній
мові, створює проміжне представлення, а потім виконує операції,
які є в тексті програми.
Процес створення компілятора можна звести до рішення
кількох задач, які називають фазами компіляції. Зазвичай
виділяють такі фази:
- лексичний аналіз;
- синтаксичний аналіз;
- видозалежний (семантичний) аналіз;
- оптимізація;
- генерація коду.
Розглянемо дані фази. Нехай дано оператор присвоєння:
position = initial + rate * 60; /* відносно дійсного числа */
30