- •Лабораторные работы по курсу «Прикладное программное обеспечение»
- •Москва 2012 Лабораторная работа №1.
- •Лабораторная работа №2. Спроектировать конечный автомат, составить диаграмму переходов ка и реализовать.
- •Лабораторная работа №3. Определить свойства ка. Построить ндка. Реализовать преобразование ндка в дка.
- •Лабораторная работа №4. Устранить из кс-грамматики бесполезные символы и ε–правила
- •Лабораторная работа №5. Устранить из kс-грамматики цепные правила и устранить левую рекурсию.
- •Лабораторная работа №6. Определить форму кс-грамматики и сделать ее приведение.
- •Лабораторная работа №8. Реализовать мп автомат для приведенной кс-грамматики
- •Лабораторная работа №9. Для ll(1) анализатора построить управляющую таблицу m
- •Лабораторная работа №10. Аналитически написать такты работы ll(1) анализатора для выведенной цепочки.
- •Лабораторная работа №11. Реализовать управляющую таблицу m для ll(k) анализатора.
- •Лабораторная работа №12.
- •Лабораторная работа №13. Определить функцию перехода g(х)
- •14.1. Построить каноническую форму множества ситуаций
- •Лабораторная работа №15. Построить управляющую таблицу для функции перехода g(х) и действий f(u).
- •Лабораторная работа №16. Реализовать lr(1)-анализатор по управляющей таблице (g,f) для lr(1) грамматики.
Московский авиационный институт
(национальный исследовательский университет)
Факультет «Прикладная математика и физика»
Лабораторные работы по курсу «Прикладное программное обеспечение»
1. Спроектировать грамматику по заданному языку L
2. Спроектировать конечный автомат, составить диаграмму переходов КА и реализовать.
3. Определить свойства КА. Построить НДКА. Реализовать преобразование НДКА в ДКА.
4. Устранить из КС-грамматики бесполезные символы и ε–правила.
5. Устранить из KС-грамматики цепные правила и устранить левую рекурсию.
6. Определить форму КС-грамматики и сделать ее приведение.
7. Спроектировать МП автомат для приведенной КС-грамматики.
8. Реализовать МП автомат для приведенной КС-грамматики.
9. Для LL(1) анализатора построить управляющую таблицу M.
10. Аналитически написать такты работы LL(1) анализатора для выведенной цепочки.
11. Реализовать управляющую таблицу M для LL(1) анализатора.
12. Построить замыкание множества ситуаций для пополненной LR(1) грамматики.
13. Определить функцию перехода g(х).
14. Построить каноническую форму множества ситуаций.
15. Построить управляющую таблицу для функции перехода g(х) и действий f(u).
16. Реализовать LR(1)-анализатор по управляющей таблице (g,f) для LR(1) грамматики.
Студент: Сокуренко Д.С.
Группа: 08-203
Руководитель: Семёнов А. С.
Оценка:
Дата:
Москва 2012 Лабораторная работа №1.
Спроектировать грамматику по заданному языку L.
1.1. Задан бесконечный регулярный язык L = {00ω1 + (1)*ω1 {0,1}*}
Слова языка L.
0010+111;
0001+11;
00+1.
1.2. Преобразовать бесконечный регулярный язык(L) в конечный язык(L1), цепочки символов которого являются подмножество цепочек символов бесконечного языка.
L1 = {00ω1 + 1ω1 {0,1}+}
Слова языка L1.
001+1;
000+1.
1.3. Сгенерировать цепочки символов по языку L1.
Слова языка L1.
001+1;
000+1.
1.4. Спроектировать грамматику для языка L1.
G1 = {T, V, P, S0}
T = {1, 0, +}
V = {A, B, C, D, S0, qf}
P = {S0→0A, A→0B, B→0C, B→1C, C→+D, D→1}
Лабораторная работа №2. Спроектировать конечный автомат, составить диаграмму переходов ка и реализовать.
2.1. Построить диаграмму переходов и таблицу переходов по грамматике (1.3).
Таблица переходов.
|
0 |
+ |
1 |
S0 |
A |
- |
- |
A |
B |
- |
- |
B |
C |
- |
C |
C |
- |
D |
- |
D |
- |
- |
qf |
Диаграмма переходов.
1
+
0,1
0
0
2.2. Реализовать конечный автомат по диаграмме переходов.
KA = {Q, ∑, δ, q0, F}
Q ={ S0, A, B, C, D, qf} – состояния автомата. Q = V
∑ = {1, 0, +} – алфавит. ∑ = T
δ – правила перехода. δ = P
q0 – начальное состояние. q0 = S0
F – множество заключительных состояний. F = {qf}
Правила перехода.
δ(S0, 0) = {A}
δ(A, 0) = {B}
δ(B, 1) = {C}
δ(B, 0) = {C}
δ(C, +) = {D}
δ(D, 1 ) = {qf}