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

(3)<R> ,<I><R> ,

(4)<R> ).

можно представить следующим образом:

(a,a) 1 (<I>,a) 1 (<I>,<I>) 4

(<I>,<I><R> 3(<I><R> 2 <I>.

4. Методы трансляции

4.1. Основные понятия

Определение. Если заданы входной алфавит P и выходной алфавит W, то переводом с языка Lвх, состоящего из цепочек множества P*, на язык Lвых, состоящий из цепочек множества W*, называется множество C пар цепочек ( α,β ) таких, что α Lвх и

β Lвых

C={( α, β ) | α Lвх и β Lвых}.

4.2. Синтаксически управляемые схемы

Определение. Схемой синтаксически управляемого перевода (СУ-схемой) называется совокупность пяти объектов:

T = { VA, Vтвх, Vтвых, Q, <I>},

где VA - множество нетерминальных символов,

Vтвх - множество терминальных символов, используемых для построения входных цепочек,

Vтвых - множество терминальных символов, используемых для построения выходных цепочек,

<I>-начальный символ, <I> VA,

Q - множество правил вида <A> − α, β,

где <A> принадлежит VA, α ( VA U Vтвх)*, β (VA U Vтвых)* и

нетерминалы, входящие в цепочку β образуют перестановку нетерминалов цепочки α.

39

Определение. Если T = { VA,Vтвх,Vтвых,Q,I} СУ-схема, то грамматика

Г = { VA,Vтвх,R, I},

где R = {<A> − α | <A> − α, β Q}, называется входной грамматикой СУ-схемы Т, а грамматика

Г'={ VA,Vтвых,R',I},

где R' = {<A> − β | <A> − α, β Q} называется выходной грамматикой СУ-схемы Т.

С помощью СУ - схемы можно строить пары соответствующих цепочек. Такое построение называется выводом СУ - схемы, а получаемые пары цепочек - выводимыми парами.

Определение. Парой, выводимой с помощью заданной СУ-схемы, называют любую пару, которая может быть построена с применением следующих правил:

1)(<I>,<I>) - выводимая пара,

2)если (α <A>β ,α '<A>β ') выводимая пара и в Q существует правило <A>−γ ,γ ', то

(αγβ, α'γ'β') является выводимой парой.

Этот факт выражается следующим образом

(α <A>β ,α '<A>β ') (α γ β ,α 'γ 'β ').

Для последовательности выводимых пар используется обозначение:

(α<A>β, α'<A>β') * (ωμπ, ω'μ'π').

4.3. Перевод, определяемый СУ - схемой

С помощью понятия выводимой пары можно определить перевод, задаваемый СУ - схемой.

Определение. Переводом С(T), определяемым СУ-схемой Т назовем множество пар, состоящих из входной и выходной цепочек, выводимых из пары, включающей два начальных символа.

С(T) = {( α, β ) | (<I>, <I>) * ( α,β ) и α Vтвх*, β Vтвых*}

4.4. Простая СУ – схема

Определение СУ - схемы не накладывает ограничений на правила, кроме требования перестановочности нетерминалов во входной и выходной частях правила. Для построения

40

детерминированных устройств, осуществляющих перевод цепочек, используются СУ - схемы с дополнительными ограничениями на вид правил.

Определение. СУ-схема Т = { VA, Vтвх, Vтвых, Q, I } называется простой, если для каждого правила <A> → α, β из Q соответствующих друг другу вхождения нетерминалов встречаются в α и β в одном и том же порядке.

Определение. Перевод называется простым СУ-переводом, если он определяется простой СУ-схемой.

Примером простой СУ - схемы может служить СУ - схема Т4.3, которая задает перевод инфиксных выражений в постфиксные польские выражения.

T4.3: VA = {E, T, F}, Vтвх = { a, +, *, (, )}, Vтвых = { a, +, *}.

Q = { E – E + T, ET+; E - T, T;

T – T * F, TF*; T - F, F;

F - (E), E; F - a, a }.

Вывод в приведенной СУ - схеме может иметь вид:

(E, E) (E + T, ET+) (T + T, TT+) (F + T, FT+) (a + T, aT+)

(a + T * F, aTF*+) (a + F * F, aFF*+) (a+a*F,aaF*+) (a + a * a, aaa*+)

4.5. Построение простой СУ - схемы

В общем случае построение СУ - схемы для заданного перевода представляется более сложной задачей, чем построение двух грамматик, поскольку необходимо учитывать связь или соответствие между этими грамматиками. Однако, для простых СУ - схем задача построения упрощается, благодаря тому, что расположение соответствующих нетерминалов во входной и выходной цепочках правил одинаково. Построение простой СУ - схемы целесообразно начинать с построения грамматики, определяющей входной язык. Такая грамматика должна быть входной грамматикой искомой СУ - схемы. Построение выходной грамматики можно совместить с построением правил СУ - схемы. Учитывая, что нетерминалы входной цепочки должны встречаться в выходной цепочке в том же порядке, все нетерминалы из входной цепочки переносятся в выходную и в неё записы-

41

ваются выходные терминальные символы. Правила, состоящие только из нетерминалов, одинаковы во входной и выходной грамматиках.

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

Г4. 0 : VT = { x, +, (, ) } VA = { <A>, <B>, <C> }

R = { <A> x,

 

<A> (<B>),

 

<B> <A><C>,

 

<C> +<A><C>,

<C> $ }

Учитывая, что выходные выражения не должны содержать скобок, находим

Vтвых = { x', +'}. Первое правило грамматики содержит один входной терминал, поэтому правило СУ - схемы можем записать в виде:

<A> x, x'.

Третье правило грамматики не содержит терминалов, поэтому получаем:

<B> <A><C>,<A><C> .

Пятое правило является аннулирующим, поэтому оно должно сохраниться в выходной грамматике

<C> $, $ .

Второе правило грамматики содержит скобки, которые, согласно правилам построения, должны отсутствовать в постфиксной польской записи, поэтому имеем:

<A> (<B>), <B>.

При построении правила СУ - схемы по четвертому правилу грамматики следует учесть, что знак сложения в постфиксной записи должен следовать за вторым опреандом, который вводится в выражение нетерминалом А, следовательно получаем правило СУ - схемы в виде:

<A> +<A><C>, <A>+'<C>.

Объединяя построенные правила, находим множество правил искомой СУ - схемы:

Т4.4: Q = {<A> x, x',

<A> (<B>), <B>,

<B> <A><C>, <A><C>,

42

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]