Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
16.04.2015
Размер:
790.89 Кб
Скачать

Часть 2: Схемы синтаксически управляемой трансляции

Определение 1.2. Схемой синтаксически управляемой трансляции называется фор-

мальная система T = (N, , , R, S), где

N алфавит нетерминалов;

— конечный входной алфавит;— конечный выходной алфавит,

причём N = и N = ;

R — конечное множество правил схемы вида

11

Часть 2: Схемы синтаксически управляемой трансляции

A , , где A N, (N )*, (N )*,

причём каждое вхождение нетерминала в цепочку взаимно однозначно связано с некоторым вхождением одноимённого нетерминала в , и эта связь является неотъемлемой частью правила;

S N начальный нетерминал.

Цепочка называется синтаксической, а

цепочка — семантической.

12

Часть 2: Схемы синтаксически управляемой трансляции

Для указания связей между вхождениями нетерминалов можно использовать индексы.

Например, связанные вхождения одноимённых нетерминалов помечаются одинаковыми индексами:

A aB(1)bCB(2), B(2)B(1)dC.

13

Часть 2: Трансляционные формы

Определение 1.3. Введем понятие

трансляционной формы следующим образом:

1) (S, S) — начальная трансляционная форма, причём эти два вхождения начального нетерминала связаны друг с другом по определению;

14

Часть 2: Трансляционные формы

2) если ( A , A ) — трансляционная форма, в которой два явно выделенных

вхождения нетерминала A связаны, и если A , — правило из R, то ( , ’ ’ ’) —

трансляционная форма; причём связь между нетерминалами в и такая же, как в правиле; нетерминалы в цепочках и связываются с нетерминалами в цепочках и в новой трансляционной форме точно так же, как в предыдущей; связь между нетерминалами является существенной чертой трансляционной формы;

15

Часть 2: Трансляционные формы

3) трансляционными формами являются такие и только такие пары цепочек, которые могут быть получены с помощью этих двух способов.

Это определение фактически вводит

отношение непосредственной выводимости

одной трансляционной формы из другой. В таком случае принято писать:

( A , ′A ′) ( , ′ ′ ′).

T

16

Часть 2: Схемы синтаксически управляемой трансляции

Для степени, транзитивного и рефлексивнотранзитивного замыкания этого отношения используются соответственно следующие

 

n

 

обозначения: ,

Когда ясно,

T

в

 

 

*

и

 

T

T

какой

.

схеме производится

вывод, имя схемы может быть опущено.

17

Часть 2: Схемы синтаксически управляемой трансляции

Определение 1.4. Трансляция, заданная при помощи схемы синтаксически управляемой трансляции T, есть множество

(T) = {(x, y) (S, S) * (x, y), x *, y *} T

и называется синтаксически управляемой трансляцией (sdt syntax-directed translation).

18

Часть 2: Схемы синтаксически управляемой трансляции

Определение 1.5.

Грамматика Gi = (N, , Pi, S), где

Pi = {A A , R},

называется входной грамматикой схемы.

Грамматика Go = (N, , Po, S), где

Po = {A A , R},

называется выходной грамматикой схемы.

Очевидно, что Gi и Go — контекстносвободные грамматики, порождающие входной и выходной языки трансляции, задаваемой схемой.

19

Пример 1.2. Пусть sdts

Ret 24

T = ({E, T, F}, {a, +, *, (, )}, {a, +, *}, R, E), где R = {(1) E E + T, E T +;

(2)E T, T;

(3)T T * F, T F *;

(4)T F, F;

(5)F (E), E;

(6)F a, a }.

Связь между нетерминалами в этих правилах очевидна, так как в синтаксической и семантиче- ской цепочках каждого правила не более чем одно вхождение нетерминала, представленного данным символом из {E, T, F}.

20

Соседние файлы в папке lectures