- •Лабораторные работы по курсу «Системное программное обеспечение»
- •Спроектировать грамматику по заданному языку l:
- •Спроектировать конечный автомат, составить диаграмму переходов ка и реализовать
- •2.1 Таблица переходов и диаграмма переходов.
- •Определить свойства ка. Изучить алгоритм преобразования ндка в дка.
- •2.1 Таблица переходов и диаграмма переходов.
- •4. Устранить из кс-грамматики бесполезные символы и ε–правила.
- •5. Устранить из kс-грамматики цепные правила и устранить левую рекурсию
- •6. Определить форму кс-грамматики и сделать ее приведение.
- •8. Реализовать мп автомат для приведенной кс-грамматики
Московский авиационный институт
(национальный исследовательский университет)
Факультет «Прикладная математика и физика»
Лабораторные работы по курсу «Системное программное обеспечение»
1. Спроектировать грамматику по заданному языку L
2. Спроектировать конечный автомат, составить диаграмму переходов КА и реализовать
3. Определить свойства КА. Изучить алгоритм преобразования НДКА в ДКА
4. Устранить из КС-грамматики бесполезные символы и ε–правила
5. Устранить из KС-грамматики цепные правила и устранить левую рекурсию
6. Определить форму КС-грамматики и сделать ее приведение
7. Спроектировать МП автомат для приведенной КС-грамматики
8. Реализовать МП автомат для приведенной КС-грамматики
Студент: Помазуева Е.А.
Группа: 08-205
Руководитель: Семёнов А. С.
Оценка:
Дата:
Москва 2012
Спроектировать грамматику по заданному языку l:
Задан бесконечный регулярный язык L = {00ω1 + (1)*ω1 {0,1}*}
Слова языка L1.
00101010+111;
000001+11;
00+1.
1.2 Преобразовать бесконечный регулярный язык(L) в конечный язык(L1), цепочки символов которого являются подмножество цепочек символов бесконечного языка.
L1 = {00ω1 + 1ω1 {0,1}+}
Слова языка L1.
001+1;
000+1.
1.3 Сгенерировать цепочки символов по языку L1.
1.4 Спроектировать грамматику для языка L1.
L1 = {T, V, P, S0}
T = {1, 0, +}
V = {A, B, C, D}
P = {S0→0A, A→0B, B→0C, B→1C, C→+D, D→1}
S0 = {0}
Спроектировать конечный автомат, составить диаграмму переходов ка и реализовать
Проектируем детерминированный конечный автомат для грамматики L.
KA = {Q, ∑, δ, q0, F}
Q ={ A, B, C, D } – состояния автомата. 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}
2.1 Таблица переходов и диаграмма переходов.
Таблица переходов.
|
0 |
+ |
1 |
S0 |
A |
- |
- |
A |
B |
- |
- |
B |
C |
- |
C |
C |
- |
D |
- |
D |
- |
- |
qf |
Диаграмма переходов.
S0
D
C
B
A
0
qf
0
Проектируем недетерминированный конечный автомат для грамматики L.
KA = {Q, ∑, δ, q0, F}
Q = { A, B, C, D } – состояния автомата. Q = V
∑ = {1, 0, +} – алфавит. ∑ = T
δ – правила перехода. δ = P
q0 – начальное состояние. q0 = S0
F – множество заключительных состояний. F = qf
Правила перехода.
δ(S0, 0) = {A}
δ(A, 0) = {B}
δ(B, 1) = {B}
δ(B, 0) = {B}
δ(B, +) = {C}
δ(C, 1 ) = {C, qf}
2.1 Таблица переходов и диаграмма переходов.
Таблица переходов.
|
0 |
+ |
1 |
S0 |
A |
- |
- |
A |
B |
- |
- |
B |
B |
C |
B |
C |
- |
- |
C,qf |
Диаграмма переходов.
S0
A
0
0
0 1
qf
C
B
0 + 1
0,1