Теория формальных языков, грамматик и автоматов. Ишакова Е.Н. - 39 стр.

UptoLike

Составители: 

39
Если грамматика является грамматикой простого предшествования, то
для поиска основы каждой ее сентенции надо просматривать элементы сентен-
ции слева направо и найти самую левую пару символов x
j
и x
j+1
, такую что
x
j
>x
j+1
. Окончанием основы сентенции будет x
j
. Далее просматривать элементы
сентенции справа налево, начиная с символа x
j
до тех пор, пока не будет найде-
на самая правая пара символов x
i-1
и x
i
, такая что x
i-1
< x
i
. Заголовком основы
будет символ x
i
. Таким образом, будет найдена основа сентенции, имеющая вид
x
i
x
i+1
…x
j-1
x
j
. Схема поиска основы сентенции грамматики представлена на ри-
сунке 7.1.
x
1
x
2
x
i
x
i+1
x
i+2
x
j-2
x
j-1
x
j
x
n
< < =
=
>
>
Рисунок 7.1 – Схема поиска основы сентенции грамматики
На основе отношений предшествования строят матрицу предшествования
грамматики. Строки и столбцы матрицы предшествования помечаются симво-
лами грамматики. Пустые клетки матрицы указывают на то, что данные симво-
лы не связаны отношением предшествования.
Определение 7.3. Построение матрицы предшествования основано на
двух вспомогательных множествах, определяемых следующим образом:
- L(A) = {X | A*Xz}, AV
N
, XV, zV
*
- множество крайних левых
символов относительно нетерминального символа А;
-
R(A) = {X | A*zX}, AV
N
, XV, zV
*
- множество крайних правых
символов относительно нетерминального символа А.
Определение 7.4. Отношения предшествования можно определить с по-
мощью введенных множеств следующим образом:
- B
i
= B
j
( B
i
, B
j
V), если и только если существует правило
AxB
i
B
j
y P, где AV
N
, x, y V
*
;
- B
i
< B
j
( B
i
, B
j
V), если и только если существует правило
AxB
i
DyP и B
j
L(D), где A, D V
N
, x, y V
*
;
- B
i
> B
j
( B
i
, B
j
V), если и только если существует правило AxCB
j
y
и B
i
R(C) или существует правило AxCDy P и B
i
R(C), B
j
L(D),
где A, C, D V
N
, x, y V
*
.
Матрицу предшествования дополняют символами
н
и
к
(начало и конец
цепочки). Для них определены следующие отношения предшествования:
-
н
< X, X V, если X L(S);
-
к
> X, X V, если X R(S).
Основа сентенции
       Если грамматика является грамматикой простого предшествования, то
для поиска основы каждой ее сентенции надо просматривать элементы сентен-
ции слева направо и найти самую левую пару символов xj и xj+1, такую что
xj⋅>xj+1. Окончанием основы сентенции будет xj. Далее просматривать элементы
сентенции справа налево, начиная с символа xj до тех пор, пока не будет найде-
на самая правая пара символов xi-1 и xi, такая что xi-1 <⋅ xi. Заголовком основы
будет символ xi. Таким образом, будет найдена основа сентенции, имеющая вид
xi xi+1…xj-1 xj. Схема поиска основы сентенции грамматики представлена на ри-
сунке 7.1.
                                 Основа сентенции

 x1        x2   …     xi        xi+1        xi+2   …   xj-2        xj-1        xj   …    xn
      <⋅        …          <⋅          =⋅          …          =⋅          ⋅>        … ⋅>

                Рисунок 7.1 – Схема поиска основы сентенции грамматики
      На основе отношений предшествования строят матрицу предшествования
грамматики. Строки и столбцы матрицы предшествования помечаются симво-
лами грамматики. Пустые клетки матрицы указывают на то, что данные симво-
лы не связаны отношением предшествования.
      Определение 7.3. Построение матрицы предшествования основано на
двух вспомогательных множествах, определяемых следующим образом:
      - L(A) = {X | ∃ A⇒*Xz}, A∈VN, X∈V, z∈V* - множество крайних левых
        символов относительно нетерминального символа А;
      - R(A) = {X | ∃ A⇒*zX}, A∈VN, X∈V, z∈V* - множество крайних правых
        символов относительно нетерминального символа А.
    Определение 7.4. Отношения предшествования можно определить с по-
мощью введенных множеств следующим образом:
      - Bi =⋅ Bj (∀ Bi, Bj ∈ V), если и только если существует правило
        A→xBiBjy ∈P, где A∈VN, x, y ∈V*;
      - Bi <⋅ Bj (∀ Bi, Bj ∈ V), если и только если существует правило
        A→xBiDy∈P и Bj ∈ L(D), где A, D ∈ VN, x, y ∈ V*;
      - Bi ⋅> Bj (∀ Bi, Bj ∈ V), если и только если существует правило A→xCBjy
        и Bi ∈ R(C) или существует правило A→xCDy ∈ P и Bi ∈ R(C), Bj∈L(D),
        где A, C, D ∈ VN, x, y ∈ V*.
     Матрицу предшествования дополняют символами ⊥н и ⊥к (начало и конец
цепочки). Для них определены следующие отношения предшествования:
      - ⊥н <⋅ X, ∀ X ∈ V, если X ∈ L(S);
      - ⊥к ⋅> X, ∀ X ∈ V, если X ∈ R(S).

                                                                                          39