
Metodicheskie_ukazania
.pdf21
три подряд пришедших символа «с».
6) Произвольная цепочка из «0» и «1» между «/*» и «*/»; произвольная цепочка символов «0» и «1», заканчивающаяся тремя символа-
ми «0»; символ «*».
7)Произвольная цепочка из «0» и «1», после которой следует «.»; цепочка четной длины из «0» и «1» между двумя символами «.»; два символа «.».
8)Цепочка четной длины из «0» между двумя «1»;
цепочка нечетной длины из «1» между двумя «0»; две «1» подряд.
9) «1» между двумя цепочками из «0»,четной длины каждая; «0» между двумя цепочками из «1»,четной длины каждая.
10) Произвольная цепочка из «0» и «1», заканчивающаяся на «101»; цепочка чередующихся «0» и «1» нечетной длины, за которой следует «.».
2.2. Программирование алгоритмов разбора на основе LL(1)- грамматик
1.Проверить, обладает ли заданная грамматика свойством LL(1), и при необходимости, выполнить ее преобразование к этому виду.
2.Построить для полученной в п.1 грамматики LL(1)-таблицу разбора. 3.Разработать программную реализацию синтаксического анализатора на
основе полученной LL(1)-грамматики и соответствующей таблицы разбора. Результат анализа представить в виде последовательности номеров правил грамматики, примененных в процессе разбора.
|
Варианты задания |
|
1. |
2. |
3. |
G::=E |
O::=p|E |
P::=bDfLe |
E::=AT |
E::=YB |
D::=dcD|d |
A::=E+|B |
Y::=YStBe| |
L::=scL|s |
T::=MP |
S::=iv |
|
M::=T*|B |
B::=p |
P - аксиома |
P::=x|y|(E) |
|
|
B::= |
O - аксиома |
|
G - аксиома |
|
|
4. |
5. |
6. |
D::=(L)M |
S::=caA |
S::=aA|bB |
L::=a,L|D,L|a|D |
A::=(L)| |
A::=0A1|01 |
M::=i|j |
L::=e,L|e |
B::=0B11|011 |
D - аксиома |
S - аксиома |
S - аксиома |
21
22
7. |
8. |
9. |
S::=t(L) |
S::=aAd|aBc |
S::=A|D |
L::=E|E;L |
A::=bA|b |
A::=ab|ac|Ab |
F::=a|a,F |
B::=Bf|f |
D::=cD|a |
E::=iF |
|
|
S - аксиома |
S - аксиома |
S - аксиома |
10. |
|
|
A::=B|D |
|
|
B::=BCC|a |
|
|
C::=ba |
|
|
D::=CaD|b |
|
|
A - аксиома |
|
|
2.3. Нейтрализация ошибок при синтаксическом разборе
Дополнить синтаксический анализатор для LL(1)-грамматики, разработанный в рамках предыдущей лабораторной работы, функцией нейтрализации синтаксических ошибок с использованием алгоритма решения этой задачи для нисходящего синтаксического разбора.
2.4. Схемы синтаксически-управляемого перевода
Разработать программную реализацию заданной схемы синтаксическиуправляемого перевода, воспользовавшись для анализа входного предложения одним из алгоритмов восходящего разбора в соответствии с вариантом задания.
Варианты задания
Код варианта задания состоит из двух цифр, первая из которых определяет номер схемы синтаксически-управляемого перевода, вторая - алгоритм восходящего разбора входного предложения (1 - алгоритм LR(1)-разбора, 2 - алгоритм разбора с использованием отношений простого предшествования).
Таблица вариантов задания
Nвар. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Код |
11 |
12 |
21 |
22 |
31 |
32 |
41 |
42 |
51 |
52 |
Схемы синтаксически-управляемого перевода
1.
S::=Sa,aSa
S::=Sb,bSb
S::=c,c
22
23
2.
E::=+Ea,Ea+
E::=*Ea,Ea*
E::=a,a
3.
E::=T&E,TE&
E::=T,T
T::=a,a
T::=-a,a-
T::=(E),E
T::=-(E),E-
Е = аксиома
4.
S::=aSbSc,1S2S3
S::=d,4
S::=e,5
5.
S::=S1,11S
S::=S0,00S
S::=+,*
2.5..Содержание отчета
1)Постановка задачи
2)Грамматика, по которой строится автоматная модель
3)Автоматная модель в виде графа переходов и выходов или управляющей таблицы
4)Текст программы
5)Описание тестовых примеров
Библиографический список
1.Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.1. Синтаксический анализ. М.: Мир, 1978. - 612c.
2.Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.2.Компиляция. М.: Мир, 1978. - 612c.
3.Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инстру-
менты. - М.: «Вильямс», 2003. – 768с.
4.Гордеев А.В., Молчанов А.Ю.. Системное программное обеспечение. – СПб.: «Питер», 2001. – 736с.
5.Грис Д. Конструирование компиляторов для ЦВМ. - М.: Мир, 1975.- 544с. 7.Р.Миллер. Теория переключательных схем. Т.1. - М.: Наука. Главная редакция физико-математической литературы, 1970. -416c.
8.Хантер Р. Основные концепции компиляторов. – М.: «Вильямс», 2002. –256с.
23
|
24 |
9. Хантер Р. Проектирование и конструирование компиляторов. - М.: Финансы |
|
и статистика, 1984. - 232с. |
|
Содержание |
|
1.Теоретическое введение ........................................................................................... |
3 |
1.1. Задача лексического анализа. Использование автоматной модели для |
|
лексического анализа ............................................................................................... |
3 |
1.2. Алгоритмы синтаксического анализа с использованием КС-грамматик..... |
6 |
1.2.1.Постановка задачи синтаксического анализа. Организация данных. |
|
Общая схема алгоритмов детерминированного разбора ...................................... |
6 |
1.2.2. Cинтаксический анализ для LL(1)-грамматики........................................... |
8 |
1.2.3. Синтаксический анализ для LR(1)-грамматики ........................................ |
12 |
1.2.4. Синтаксический анализ для грамматики простого предшествования .... |
15 |
1.2.5. Нейтрализация ошибок при LL(1)- разборе............................................... |
18 |
1.2.6. Синтаксически-управляемый перевод........................................................ |
19 |
2. Задания на лабораторные работы......................................................................... |
20 |
2.1. Программирование алгоритмов лексического анализа с использованием |
|
автоматных грамматик........................................................................................... |
20 |
2.2. Программирование алгоритмов разбора на основе LL(1)-грамматик........ |
21 |
2.3. Нейтрализация ошибок при синтаксическом разборе ................................. |
22 |
2.4. Схемы синтаксически-управляемого перевода ............................................ |
22 |
2.5..Содержание отчета .......................................................................................... |
23 |
Библиографический список ...................................................................................... |
23 |
Содержание ................................................................................................................ |
24 |
24