Главная страница

Учебное пособие для студентов II курса (издание третье, переработанное и дополненное) Москва 2009 удк 519. 682. 1


Скачать 2.2 Mb.
НазваниеУчебное пособие для студентов II курса (издание третье, переработанное и дополненное) Москва 2009 удк 519. 682. 1
Анкорformal.grammars.and.languages.2009.pdf
Дата18.03.2019
Размер2.2 Mb.
Формат файлаpdf
Имя файлаformal.grammars.and.languages.2009.pdf
ТипУчебное пособие
#26014
страница15 из 15
1   ...   7   8   9   10   11   12   13   14   15
do {x

x

(a

b

(c/2

1))

a; y

y

2;} while (y

10);
Если не является, объясните почему, и предложите свой вариант ПОЛИЗа для этого фраг- мента программы.
7. Является ли запись
ПОЛИЗ
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 16 17
i
1
=
;
i
n
< 36 !F a
a
b
+
1
-
x
y
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
y
2
+
/
-
*
5
+
=
;
i
i
2
+
=
;
5
!
правильной записью в ПОЛИЗе следующего фрагмента программы на Си:
for ( i

1; i

n; i

i

2 ) a

(a

b

1)

(x

y
/(y

2))

5;
Если не является, объясните почему и предложите свой вариант ПОЛИЗа для этого фраг- мента программы.
8. а) перевести в ПОЛИЗ фрагмент программы на Си:
i

10; s

0; while ( i

0 && s

40 ) { p +

f(i+s) ?

i : s++ ; }; b) выражение в ПОЛИЗе записать в инфиксной форме (на Си).
x y z a x 5 y /


z 6

8





9. а) перевести в ПОЛИЗ фрагмент программы на Си:
if (z

x

y

5) a

x

y? (z

x

6): (z=a

y); else z +

y
; b) выражение в ПОЛИЗе записать в инфиксной форме (на Си).
x a x z y /


z 6 a





Задачи
/
V. ПОЛИЗ, перевод в ПОЛИЗ
112 10. Предложить ПОЛИЗ для следующих операторов: a) if( E ) S
1
; S
2
; S
3
Семантика этого оператора такова: вычисляется значение выражения Е; если его значение меньше 0, то выполняется оператор S
1
;
если равно 0 — оператор S
2
, иначе — оператор S
3 b) choice ( S
1
; S
2
; S
3
), E
Семантика: вычисляется значение выражения Е; если его значение равно i, то выполняется оператор S
i
для i

1, 2, 3; иначе оператор choice эквивалентен пустому оператору. c) cycle ( E
1
; E
2
; E
3
), S
Семантика этого оператора отличается от семантики оператора for в языке Си только тем, что оператор S выполняется, по крайней мере, один раз (т.е. после вычисления выражения
Е
1
сразу выполняется оператор S, затем вычисляется значение Е
3
, потом — значение Е
2
, ко- торое используется для контроля за количеством повторений цикла также, как и в цикле
for).
11. Построить грамматику для выражений, содержащих переменные, знаки операций

,

,

,
/ и скобки ( ). Грамматика должна отражать одинаковый приоритет и лево-ассоциативность всех четырех операций. Определить действия по переводу таких выражений в ПОЛИЗ.
12. Изменить приоритет операций отношения в М-языке — сделать его наивысшим. По- строить соответствующую грамматику, отражающую этот приоритет. Написать синтаксиче- ский анализатор, обеспечить контроль типов, задать перевод в ПОЛИЗ.
13. Построить КС-грамматику, аналогичную данной,
E

T {

T}
T

F {

F}
F

(E) | i с той лишь разницей, что в новом языке перед идентификатором будет допускаться унар- ный минус, имеющий наивысший приоритет (например, a

b

c допускается и означает
a

(

b)

(

c). В созданную грамматику вставить действия по переводу такого выражения в
ПОЛИЗ. Для каждой используемой процедуры привести ее текст на Си


14. Дана грамматика, описывающая выражения:
E

TE

E



TE

|

T

FT

T



FT

|

F

PF

F


^ PF

|

P

(E) | i
Включить в эту грамматику действия по переводу этих выражений в ПОЛИЗ. Для каждой используемой процедуры привести ее текст на Си


113
Литература
[1].
Д. Грис. Конструирование компиляторов для цифровых вычислительных машин. — М.:
Мир, 1975.
[2].
Ф. Льюис, Д. Розенкранц, Р. Стирнз. Теоретические основы проектирования компиля- торов. — М.: Мир, 1979.
[3].
А. Ахо, Дж. Ульман. Теория синтаксического анализа, перевода и компиляции. — Т.
1,2. — М.: Мир, 1979.
[4].
Ф. Вайнгартен. Трансляция языков программирования. — М.: Мир, 1977.
[5].
И. Л. Братчиков. Синтаксис языков программирования. — М.: Наука, 1975.
[6].
С. Гинзбург. Математическая теория контекстно-свободных языков. — М.: Мир, 1970.
[7].
Дж. Фостер. Автоматический синтаксический анализ. — М.: Мир, 1975.
[8].
В. Н. Лебедев. Введение в системы программирования. — М.: Статистика, 1975.
[9].
Б. Ф. Мельников. Подклассы класса контекстно-свободных языков. — М.: МГУ, 1995.
[10].
В. Н. Пильщиков, В. Г. Абрамов, А. А. Вылиток, И. В. Горячая. Машины Тьюринга и алгоритмы Маркова. Решение задач. — М.:МГУ, 2006.
[11].
А. Ахо., Р. Сети, Дж. Ульман. Компиляторы: принципы, технологии, инструменты. —
М.: «Вильямс», 2001.
[12].
А. Ахо, М. Лам, Р.Сети, Дж. Ульман. Компиляторы: принципы, технологии и инстру- ментарий. — М.: «Вильямс», 2008.

114
Содержание
МГУ им. М. В. Ломоносова ...................................................................................... 2
Рецензенты: .............................................................................................................. 2
Элементы теории формальных языков и грамматик ............................................. 3
Введение .................................................................................................................................... 3
Основные понятия и определения ......................................................................................... 3
Классификация грамматик и языков по Хомскому ................................................................. 7
Грамматики с ограничениями на вид правил вывода .......................................................... 7
Иерархия Хомского ............................................................................................................... 9
Примеры грамматик и языков ................................................................................................ 11
Регулярные .......................................................................................................................... 12
Контекстно-свободные ........................................................................................................ 12
Неукорачивающие и контекстно-зависимые ..................................................................... 13
Без ограничений на вид правил (тип 0) .............................................................................. 13
Замечание о связи между языком и грамматикой .............................................................. 14
Разбор цепочек ........................................................................................................................ 15
Преобразования грамматик .................................................................................................... 19
Алгоритм удаления недостижимых символов ................................................................... 19
Алгоритм удаления бесплодных символов ........................................................................ 19
Алгоритм приведения грамматики ..................................................................................... 20
Алгоритм устранения правил с пустой правой частью ..................................................... 20
Элементы теории трансляции ............................................................................... 21
Введение .................................................................................................................................. 21
Разбор по регулярным грамматикам ...................................................................................... 22
Алгоритм разбора по диаграмме состояний....................................................................... 24
Пример разбора цепочки ..................................................................................................... 27
О недетерминированном разборе ....................................................................................... 28
Регулярные выражения ....................................................................................................... 34
Задачи лексического анализа .................................................................................................. 35
Лексический анализатор для М-языка................................................................................ 37
Синтаксический анализ........................................................................................................... 47
Метод рекурсивного спуска ................................................................................................ 48
Нисходящий анализ с прогнозируемым выбором альтернатив ........................................ 52
О применимости метода рекурсивного спуска .................................................................. 53
Задача разбора для неоднозначных грамматик .................................................................. 65
О других методах распознавания КС-языков.................................................................... 66
Синтаксический анализатор для М-языка .......................................................................... 67
Семантический анализатор для М-языка ........................................................................... 74
Генерация внутреннего представления программ ................................................................. 81
Язык внутреннего представления программы ................................................................... 81
Синтаксически управляемый перевод ................................................................................ 85

115
Генератор внутреннего представления программы на М-языке ....................................... 87
Интерпретатор ПОЛИЗа для модельного языка ................................................................ 89
Задачи ..................................................................................................................... 93
I. Грамматики и языки. Классификация по Хомскому .......................................................... 93
II. Регулярные грамматики, конечные автоматы, разбор по ДС ........................................... 99
III. Метод рекурсивного спуска. КС-грамматики с действиями ......................................... 103
IV. Синтаксически управляемый перевод ............................................................................ 108
V. ПОЛИЗ, перевод в ПОЛИЗ .............................................................................................. 109
Литература ............................................................................................................ 113
1   ...   7   8   9   10   11   12   13   14   15


написать администратору сайта