Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вариант

.docx
Скачиваний:
10
Добавлен:
02.02.2015
Размер:
17.55 Кб
Скачать

Вариант №

1.Для заданных примеров цепочек построить правила грамматики. Проверить правильность составления правил с помощью вывода.

1.      i=j=k=50;

2.      k=36;

3.      k=i=k=j=(a-b)+(c+b)+b-c;

2.Определить к какому классу относится построенная грамматика:

         Простая

         Слаборазделеная

         LL- граматика

3. Если грамматики не является простой, то построить функции Перв, След и множество Выбор. Для заданной грамматики построить команды распознавателя.

4. Работу роспознавателя проверить на примере распознавания цепочки

Решение:

Правила:

  1. I -> SM;

  2. M -> 50 | 36| FR1

  3. S -> B=R

  4. B -> i | j |k

  5. R -> B=R | $

  6. F ->(CDC) | CDC

  7. R1 -> +FR1 | $

  8. C -> a | b | c

  9. D -> + | -

Функции Перв, След и Выбор:

Перв(1) = { i, j, k };

Перв(2.1) = { 50 };

Перв(2.2) = { 36 };

Перв(2.3) = {a, b, c };

Перв(3) = { i, j, k };

Перв(4.1) = { i };

Перв(4.2) = { j };

Перв(4.3) = { k };

Перв(5.1) = { i, j, k };

Перв(5.2) = { $ };

Перв(6.1) = { ( };

Перв(6.2) = { a, b, c };

Перв(7.1) = { + };

Перв(7.2) = { $ };

Перв(8.1) = { a };

Перв(8.2) = { b };

Перв(8.3) = { c };

Перв(9.1) = { + };

Перв(9.2) = { - };

След(S) = { 50, 36, (, a, b, c };

След(M) = { ; };

След(B) = { = };

След(R) = { 50, 36, (, a, b, c };

След(F) = { + };

След(R1) = { 50, 36, (, a, b, c };

След(C) = { +, - };

След(D) = { a, b, c };

Выбор(1) = { i, j, k };

Выбор (2.1) = { 50 };

Выбор (2.2) = { 36 };

Выбор (2.3) = {a, b, c };

Выбор (3) = { i, j, k };

Выбор (4.1) = { i };

Выбор (4.2) = { j };

Выбор (4.3) = { k };

Выбор (5.1) = { i, j, k };

Выбор (5.2) = След(R) = { 50, 36, (, a, b, c };

Выбор (6.1) = { ( };

Выбор (6.2) = { a, b, c };

Выбор (7.1) = { + };

Выбор (7.2) = След(M) = { ; };

Выбор (8.1) = { a };

Выбор (8.2) = { b };

Выбор (8.3) = { c };

Выбор (9.1) = { + };

Выбор (9.2) = { - };

Побудуємо команди розпізнавача:

f*( S, i, I ) = ( S, MS );

f* (S, j, I ) = ( S, MS );

f*(S, k, I ) = ( S, MS );

f(S, 50, M) = ( S, $ );

f(S, 36, M) = ( S, $ );

f*(S, (, M ) = (S, RF );

f*(S, a, M ) = (S, RF );

f*(S, b, M ) = (S, RF );

f*(S, c, M ) = (S, RF );

f*(S, i, S ) = (S, R=B );

f*(S, j, S ) = (S, R=B );

f*(S, k, S ) = (S, R=B );

f(S, i, B ) = (S, $);

f(S, j, B ) = (S, $);

f(S, k, B ) = (S, $);

f*(S, i, R ) = (S, R=B );

f*(S, j, R ) = (S, R=B );

f*(S, k, R ) = (S, R=B );

f*(S, 50, R ) = (S, $);

f*(S, 36, R ) = (S, $);

f*(S, (, R ) = (S, $);

f*(S, a, R ) = (S, $);

f*(S, b, R ) = (S, $);

f*(S, c, R ) = (S, $);

f(S, (, F ) = (S, (CDC));

f*(S, a, F ) = (S, CDC);

f*(S, b, F ) = (S, CDC);

f*(S, c, F ) = (S, CDC);

f(S, +, R1 ) = (S, R1F+ );

f*(S, 50, R1 ) = (S, $);

f*(S, 36, R1 ) = (S, $);

f*(S, (, R1 ) = (S, $);

f*(S, a, R1 ) = (S, $);

f*(S, b, R1 ) = (S, $);

f*(S, c, R1 ) = (S, $);

f(S, a, C ) = (S, $ );

f(S, b, C ) = (S, $ );

f(S, c, C ) = (S, $ );

f(S, +, D ) = (S, $ );

f(S, -, D ) = (S, $ );

Вариант №14

1.Для заданных примеров цепочек построить правила грамматики. Проверить правильность составления правил с помощью вывода.

1.      float &b, *c ;int b array[2][3]:

2.      char *i[5]; float a, *b ;

3.      int *c, i, c[4], *b;

2.Определить к какому классу относится построенная грамматика:

         Простая

         Слаборазделеная

         LL- граматика

3. Если грамматики не является простой, то построить функции Перв, След и множество Выбор. Для заданной грамматики построить команды распознавателя.

4. Работу роспознавателя проверить на примере распознавания цепочки