Zadania_na_laboratornye_raboty
.pdfЗАДАНИЯ НА ЛАБОРАТОРНЫЕ РАБОТЫ ПО КУРСУ «ТЕОРИЯ АВТОМАТОВ И ФОРМАЛЬНЫХ ЯЗЫКОВ»
ЗАДАНИЕ 1 Тема: «Конечные автоматы и автоматные языки»
1.1.Описать заданный язык регулярными выражениями
1.2.Построить конечный автомат по полученным регулярным выражениям
1.3.Разработать программную реализацию построенного автомата
1.4.Разработать программную реализацию автомата по регулярным выражениям с помо-
щью flex
1.5.Описать заданный язык автоматной грамматикой
Описания языков
1) Цепочка символов «а» произвольной длины, после которой следует символ «b»; цепочка символов «а» произвольной длины, после которой следует символ «с»; цепочка символов «b» произвольной длины, после которой следуют «а» или «с».
2) Цепочка пар символов «а» «b» произвольной длины, после которой следует «b»; цепочка пар символов «b» «а» произвольной длины, после которой следует «с»; символ «с».
3) Произвольная цепочка символов из «а»,«b»,«с», заканчивающаяся на «аbс»; произвольная цепочка символов из «а»,«b»,«с», заканчивающаяся на «сbа».
4)Три подряд пришедших символа «а» в произвольной цепочке из «а» и «b», после которых следует «b»;
три подряд пришедших символа «b» в произвольной цепочке из «а» и «b», после которых следует «а»;
три подряд пришедших символа «b» в произвольной цепочке из «а» и «b», после которых следует «с».
5)Произвольное число символов «а» между двумя символами «b»;
произвольное число символов «b» между двумя символами «с»; три подряд пришедших символа «с».
6)Произвольная цепочка из «0» и «1», заканчивающаяся тремя символами «1»; произвольная цепочка символов «0» и «1», заканчивающаяся тремя символами «0».
7)Произвольная цепочка чередующихся символов «0» и «1», после которой следует «.»; цепочка длины, кратной 3, из символов «0» между двумя символами «.»; два символа «.».
8)Цепочка четной длины из «0» между двумя «1»;
цепочка нечетной длины из «1» между двумя «0»; две «1» подряд.
9) «1» между двумя цепочками из «0»,четной длины каждая; «0» между двумя цепочками из «1»,четной длины каждая.
10) Произвольная цепочка из «0» и «1», заканчивающаяся на «101»; произвольная цепочка из «0» и «1», заканчивающаяся на «010».
ЗАДАНИЕ 2 Тема: «Нисходящий разбор с использованием автоматов с магазинной памятью»
2.1.Проверить, обладает ли заданная грамматика свойством LL(1), и при необходимости, выполнить ее преобразование к этому виду.
2.2.Построить для полученной в п.1 грамматики LL(1)-таблицу разбора.
2.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 - аксиома |
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|b |
E::=iF |
|
|
S - аксиома |
S - аксиома |
S - аксиома |
10) |
|
|
A::=B|D |
|
|
B::=BCC|a
C::=ba
D::=CaD|b
A - аксиома
ЗАДАНИЕ 3 Тема: «Восходящий разбор с использованием автоматов с магазинной памятью»
3.1.Для заданной грамматики построить LR(1)-таблицу разбора
3.2.Разработать программную реализацию синтаксического анализатора на основе полученной таблицы разбора. Результат анализа представить в виде последовательности номеров правил грамматики, примененных в процессе разбора.
3.3.Разработать программную реализацию LR(1)-разбора с помощью bison
ЗАДАНИЕ 4 Тема: «Синтаксически управляемый анализ текстовых документов»
Выполнить лабораторную работу «Средства автоматизации построения синтаксических анализаторов».
ГРАФИК ВЫПОЛНЕНИЯ ЗАДАНИЙ
№ п/п |
Номер задания |
Номер недели отчет- |
Рейтинг |
|
|
ности |
|
1 |
1.1, 1.2, 1.3 |
3 |
5 |
2 |
1.4, 1.5 |
6 |
5 |
3 |
2.1, 2.2 |
8 |
5 |
4 |
2.3 |
10 |
10 |
5 |
3.1, 3.2 |
13 |
10 |
6 |
3.3 |
15 |
5 |
7 |
4 |
17 |
5 |