Page 9 - 4625
P. 9
Вихід: - «Так» + семантична структура (семантичний
терм) програми;
- «Ні» + синтаксичні помилки в програмі.
4. Оптимізація проміжного коду.
Вхід: семантичний терм програми.
Вихід: оптимізований семантичний терм програми.
Оптимізація – це еквівалентне перетворення програми на
основі певних критеріїв. Серед критеріїв оптимізації можна
виділити оптимізацію за пам′яттю та оптимізацію за швид-
кістю виконання результуючої програми. Залежно від підходів
за оптимізації програми можна розглядати машиннозалежні та
машиннонезалежні методи оптимізації. На відміну від машин-
нонезалежних методів машиннозалежні методи оптимізації
враховують архітектурні особливості ЕОМ, наприклад, наяв-
ність апаратного стека, наявність вільних регістрів тощо.
5. Генерація об’єктивного коду.
Вхід: семантичний терм програми.
Вихід: результуючий (об’єктивний) код програми.
2. ЛЕКСИЧНИЙ АНАЛІЗ У МОВНИХ
ПРОЦЕСОРАХ
Призначення: перетворення вхідного тексту програми з
формату зовнішнього представлення в машинно-орієнтований
формат – послідовність лексем.
Лексема – це ланцюжок літер, елементарний об’єкт прог-
рами, що несе певний семантичний зміст. У подальшому кож-
ну лексему будемо представляти як пару:
(<клас _ лексеми, ім’я _ лексеми>)
У більшості мов програмування для визначення класів
лексем достатньо скінченних автоматів.
2.1 Скінченні автомати
Означення: недетермінований скінченний автомат – це
п’ятірка:
8