Finite-state-machine
Программная реализация простого конечного автомата
Постановка задачи
- «Произвольная цепочка из a и b; заканчивающаяся на aba; произвольная цепочка из a и b, заканчивающаяся на bab.» Для данного формального языка составить регулярное выражение.
- Примечание:
a
можно заменить на0
;b
можно заменить на1
- Примечание:
- Создать таблицу конечного автомата на основе регулярного выражения
- Разработать программную реализацию построенного автомата
- Описать заданный язык автоматной грамматикой
Регулярное выражение
{avb}(babVaba)
ИЛИ
Y1={avb}bab
Y2={avb}aba
V - дизъюнкция; ИЛИ
Граф Переходов
Таблица
0 | 1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|---|
a | 1 | 1 | 4 | 5 | 1 | 1 | 5 |
b | 2 | 3 | 2 | 2 | 6 | 6 | 2 |
- Загаловки по горизонтали - это название состояний конечного автомата
- Загаловки по вертикали - это символы по которым осуществляется переход
Автоматная грамматика
T::={a,b};
V::={<1>,<2>,<3>,<4>,<5>,<6>};
S::=<5>|<6>;
P:
<1>::=<1>a|<4>a|<5>0|a;
<2>::=<2>b|<3>b|<6>b|b;
<3>::=<1>b;
<4>::=<2>a;
<5>::=<3>a|<6>a;
<6>::=<4>b|<5>b;