Исключение левой рекурсии
Формулировка задания Исключить левую рекурсию из КС-грамматики G = <T, N, S, R>. Задание. 2.2.4.6
Решение: 1. I=1; Заменим выражения стоящие слева от фигурной скобки на выражения, написанные справа от фигурной скобки
2. i=2 Повторим предыдущий шаг для i=2; T T 3. i=3; Преобразования не требуются.
Новая грамматика, эквивалентная исходной: ,где
Исключение левой рекурсии
Исключить левую рекурсию из КС-грамматики G = < T, N, S, R >. 2.2.4.1. T = { a, b, с }, N = { S, A }, R = { S ® SaA, S ® AA, S ® b, A ® ASa, A ® Ab, A ® c }; 1. i=1 S ® SaA; S ® AA, S ® b после замены S ® AA, S ® b, S ® AAS’, S ® bS’, S’ ® aA, S’ ® aA S’ 2. i=2, j=1 правил вида A2®A1a нет. j=i-1 3. j=1, i=2 A ® ASa, A ® Ab, A ® c После замены A ® c, A ® cА’, A’ ® Sa, A’ ® b, A’ ® SaA’, A’ ® bA’ R’={ S ® AA, S ® b, S ® AAS’, S ® bS’, S’ ® aA, S’ ® aA S’, A ® c, A ® cА’, A’ ® Sa, A’ ® b, A’ ® SaA’, A’ ® bA }, N’={S,A,S’A’}
Грамматика без левой рекурсии - G’={T,N’,S,R’}
Исключение левой рекурсии Исключить левую рекурсию из КС-грамматики G = < T, N, S, R >. 2.2.4.1. T = { a, b, с }, N = { S, A }, R = { S ® SaA, S ® AA, S ® b, A ® ASa, A ® Ab, A ® c }; i=1 S ® SaA; S ® AA, S ® b после замены S ® AA, S ® b, S ® AAS’, S ® bS’, S’ ® aA, S’ ® aA S’ i=2, j=1 правил вида A2®A1a нет. j=i-1 j=1, i=2 A ® ASa, A ® Ab, A ® c После замены A ® c, A ® cА’, A’ ® Sa, A’ ® b, A’ ® SaA’, A’ ® bA’ R’={ S ® AA, S ® b, S ® AAS’, S ® bS’, S’ ® aA, S’ ® aA S’, A ® c, A ® cА’, A’ ® Sa, A’ ® b, A’ ® SaA’, A’ ® bA }, N’={S,A,S’A’}
Грамматика без левой рекурсии - G’={T,N’,S,R’}
Построение детерминированного конечного автомата по автоматной грамматике Формулировка задания Построить детерминированный конечный автомат по автоматной грамматике G = < T, N, S, R >. Определить язык, допускаемый конечным автоматом. Задание. 3.2.1.3.
Решение: Исключим e - правила из грамматики. Запишем грамматику недетерминированного конечного автомата: K = ({S, A, B, C, D, E}, {0, 1}, , S, {E}), где функции переходов:
Преобразуем недетерминированный конечный автомат в детерминированный:
K’ = ({P0, P1, P2, P3, P4}, {1,0}, ’, P0, {P3, P4}) Граф переходов полученного детерминированного автомата
Функции переходов (P0, 1) = P1 (P1, 0) = P0 (P1, 1) = P2 (P2, 0) = P3 (P3, 0) = P3 (P3, 1) = P4 (P4, 0) = P4 ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|