Синтаксично керований переклад – це метод реалізації компілятора, при якому переклад вихідної мови повністю керується синтаксичним аналізом.

Одним із поширених методів синтаксично керованого перекладу є перетворення рядка символів у послідовність дій, пов’язаних із правилами граматики. Таким чином, аналіз вхідного рядка граматики створює послідовність застосування правил, що надає простий спосіб прив’язки семантики до синтаксису.

Огляд Синтаксично керований переклад функціонує шляхом додавання дій до продукцій у контекстно-вільній граматиці, утворюючи синтаксично кероване визначення. Дії – це кроки або процедури, що виконуються, коли продукція використовується в деривації. За звичайною угодою, дії беруть у фігурні дужки {}, а якщо фігурні дужки необхідні як символи граматики, їх відрізняють за допомогою лапок. Граматика, що містить дії, називається схемою синтаксично керованого перекладу (іноді просто схемою перекладу).

Кожен символ граматики може мати атрибут – значення, пов’язане з цим символом. Наприклад, такими атрибутами можуть бути тип змінної чи значення виразу. Якщо символ X має атрибут t, це позначається як X.t.

Таким чином, за допомогою дій та атрибутів граматика може бути використана для перекладу рядків мови шляхом виконання відповідних дій і передавання інформації через атрибути символів.

Реалізація Синтаксично керований переклад може бути реалізований двома способами:

Побудова синтаксичного дерева – спочатку створюється синтаксичне дерево, після чого дії виконуються у порядку передфіксного обходу (прямий порядок, Pre-order) – зліва направо та в глибину. Під час синтаксичного аналізу – замість побудови дерева дії виконуються безпосередньо під час аналізу, що дозволяє імпортувати класи синтаксично керованих визначень.

Цей метод широко застосовується в розробці компіляторів для реалізації семантичного аналізу та генерації коду.

Примітки