Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


МП-преобразователь для Т-грамматики



Активная цепочка может рассматриваться как программа управления работой МП-преобразователя. Прежде чем посмотреть, как это происходит, обратимся к методике пост­роения МП-преобразователя по транслирующей грамматике. Затем получим, преобразователь для Т-грамматики условного опе­ратора и проследим работу преобразователя.

Рассматриваемая входная грамматика условных операторов (см. табл. 5.2.1) относится к классу LL(1)-грамматик. Поэтому вполне есте­ственно вести здесь речь о построении преобразователя, подходяще­го для такого класса грамматик. Наш МП - преобразователь будет использовать нисходящую стратегию анализа, он будет также детер­минированным. Методика построения МП - распо­знавателя для LL(1)-грамматик была рассмотрена ранее. По­вторим здесь полностью все пункты указанной методики с учетом особенностей, которые привносит в нее Т-грамматика.

Прежде всего, сохраним, по возможности, обозначения под­программ в управляющей таблице преобразователя:

- 3 ( , ) - Замена символа в вершине магазина строкой и запись в выходную строку части перевода, соответствующей це­почке операционных символов.

- П - перемещение указателя входной строки на одну пози­цию вправо.

- И( ) - Исключение символа из вершины магазина и вывод в выходную строку части перевода, соответствующей цепочке операционных символов.

- О - Обнаружение Ошибки в программе и завершение ра­боты.

- В - Выход, нормальное завершение работы.

Если один из аргументов подпрограммы 3 отсутствует, со­храняем разделяющую запятую. При отсутствии единственного аргумента подпрограммы И пишем И(). Теперь дадим пункты ме­тодики построения ДМП-преобразователя М = (Q, , Г, , , q0, Z0, F) с одним состоянием по Т-грамматике GT = (VT, VN, , R, S), входная грамматика G = (VT, VN, Р, S) которой обладает свой­ством LL(1)-грамматик.

1.Q={q}; q0= q; F=

2. =VT {#}, # — концевой маркер входной строки.

3. Г= VN {#} {t\ t VT, (A -> t ) Р, V+, V*}

{r\r , (А- > 1B 2 r 3) R, B VN; 1 2, 3 (V )*}, где

t - не головной символ в правой части правила;

r - операционный символ, слева от которого в правой части прави­ла имеется хотя бы один нетерминал;

# — маркер дна магазина.

4. Z0 = S#, S располагается в вершине магазина.

5. Заготовить управляющую таблицу преобразователя со строками Z Г и столбцами а (одну, так как состояние одно).

6.Последовательно проанализировать правила Т-грамматики и заполнить позиции (Z, а) таблицы обозначениями подпрограмм преобразователя:

а) 3( , fg), П—для правила вида Z-> fag , где Z VN, a VT, f, g *; {V }* и h1( ) V, т.е. головной символ строки не должен быть операционным;

б) 3( , f)—для правила вида Z-> f и всех a DS(Z, ), где f *;

=A , Z, A V N ; {V }*, ; DS(Z, ) вычисляется по правилам входной грамматики G;

в) И(f)—для правил вида Z -> f и всех a DS(Z, ), где Z V N ;
f *, а ; DS(Z, ) вычисляется по грамматике G;

г) И(fg), П—для правил вида Z-> fag, где Z VN, а VT; f, g *.

7. Завершение заполнения позиций (Z, д) таблицы обозначе­ниями подпрограмм преобразователя:

а) И(), П — для всех позиций Z = а, где Z, a VT;

б) И — для всех позиций строки Z ;

в) В — для позиции Z = а = #;

г) О — для всех оставшихся пустыми позиций.

Теперь формируются заготовки текстов сообщений об ошиб­ках, и на этом разработка МП-преобразователя завершается.

Задача Построить МП-преобразователь по транслирую­щей грамматике условных операторов

Решение

1. Q= {q}; q0=q; F= 2. ={if, then, else, z, p,;, #}

3. Г= {U, K, H, M, O, #,;, [x3]} 4. Z0= U#

5. Управляющая таблица представлена в табл. 5.2.2

6. Пояснения к заполнению табл. 5.2.2:

а) правило 1 — помещаем 3(К, ), П в позицию (U, if);
правило 2 — помещаем 3(Н, [х0]), П в позицию (K, р);
правило 3 — помещаем З((ОМ[х3]; ), [х1]), в позицию (H, then);
правило 4 — помещаем З(О, [х2]), П в позицию (М, else);

б) правило 6 — помещаем 3(U, ) в позицию (О, z);

в) правило 5 — помещаем И в позицию (М,; );

г) правило 7 — помещаем И([х0]), П в позицию (О, z).

7. Пояснения к завершению заполнения табл. 5.2.2;

а) помещаем И( ), П в позицию (;,; );

б) помещаем И([xз]) во все позиции строки [xз];

в) помещаем В в позицию (#, #);

г) помещаем О во все свободные позиции таблицы.

 

Таблица 5.2 Управляющая таблица

 

  if then else z р ; #
U 3(К, ), П О О О О О 0
K О О О О 3(О, [х2]), П O 0
H О 3((0М[х3]; [x1]), П О O О O 0
M О О 3(О, [х2]), П О О И() 0
О 3(U, ) О О И[х0]), П O O 0
; О О О О О И(), П 0
3] И([x3])
# О O O О O 0 B
                         

Задача Используя МП - преобразователь из предыдущей задачи, вы­полнить перевод оператора ifp1 then z1 else z2; в ОПЗ.

Прежде всего обратим внимание на то, что помимо магазина наш МП -преобразователь работает со стеком меток. Решение пред­ставим в табл. 5.2.3, предусмотрев в ней колонки для отображения номера шага преобразования, содержимого магазина, содержимого входной строки и записей в выходную строку преобразователя. Магазин изображается так, что его вершина расположена слева. Текущий символ входной строки также находится слева. Выход­ная строка формируется слева направо. Кроме того, для наглядности предусмотрены колонки для показа операционного символа, являющегося активным на текущем шаге перевода (колонка " операция" ), и для представления стека меток (вершина стека слева).

На каждом шаге работы преобразователя выделяется пара (символ в магазине, текущий входной символ) и выполняются действия, определенные содержимым соответствующей позиции таблицы и активным операционным символом. На выходе пре­образователя получена строка р1т2УПЛz1т1БПт1: z2т2:, котораяпредставляет собой ПОЛИЗ исходного оператора и может быть ис­пользована для генерации машинного кода или интерпретации.

 

Таблица 5.3 Перевод условного оператора в ОПЗ

 


Поделиться:



Популярное:

  1. C.Для предоставления возможности сравнивать рыночные стоимости акций компаний одной отрасли
  2. II этап. Обоснование системы показателей для комплексной оценки, их классификация.
  3. II. ТЕМЫ ДЛЯ КОНТРОЛЬНЫХ РАБОТ
  4. III. Источники для изучения Греческой церкви XVII в.
  5. IV. Источники для изучения той же истории XVIII в.
  6. IX. ЗНАЧЕНИЕ «УНИВЕРСАЛИЙ» КОСМОС, ВРЕМЯ, ПРОСТРАНСТВО И РЕАЛЬНОСТЬ ДЛЯ ПСИХОДРАМЫ
  7. IX. Магическое заклинание для Дальнего путешествия
  8. Teсm для проверки реальности соединения с высшим Я
  9. V. Источники для изучения Греческой церкви XIX в.
  10. VIII. Сигналы, применяемые для обозначения поездов, локомотивов и другого железнодорожного подвижного состава
  11. XII. Большинство приемлемых для организма способов поведения совместимы с представлениями человека о самом себе.
  12. XVI. Любой опыт, несовместимый с организацией или структурой самости, может восприниматься как угроза, и чем больше таких восприятий, тем жестче организация структуры самости для самозащиты.


Последнее изменение этой страницы: 2016-04-11; Просмотров: 650; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.027 с.)
Главная | Случайная страница | Обратная связь