Рубрики

ВОРОТА | GATE CS 2012 | Вопрос 65

Считайте дату такой же, как и выше вопрос. Соответствующие записи для E1, E2 и E3:


(А) А
(Б) Б
(С) С
(D) D

Ответ: (с)
Объяснение:

Поскольку нам нужно найти записи E1, E2 и E3, которые относятся к нетерминалам S и B, мы будем иметь дело только с теми производствами, которые имеют S и B на LHS.

Здесь представляет таблицу синтаксического анализа как M [X, Y], где X представляет строки (нетерминалы), а Y представляет столбцы (терминалы).


Rule 1: if P --> Q is a production, for each terminal
        't' in FIRST(Q) add P-->Q to M [ P , t ]

Rule 2 : if epsilon is in FIRST(Q), add P --> Q to
         M [ P , f ] for each f in FOLLOW(P). 

Для производственного правила S–> aAbB оно будет добавлено в таблицу синтаксического анализа в позиции M [S, FIRST (aAbB)], теперь FIRST (aAbB) = {a}, поэтому добавьте S–> aAbB к M [S, а], который является E1.

Для производственного правила S–> bAaB оно будет добавлено в таблицу синтаксического анализа в позиции M [S, FIRST (bAaB)], теперь FIRST (bAaB) = {b}, следовательно, добавьте S–> bAaB к M [S, б] который Е2

Для производственного правила S–> epsilon оно будет добавлено в таблицу синтаксического анализа в позиции M [S, FOLLOW (S)], теперь FOLLOW (S) = {a, b, $}, поэтому добавьте S -> epsilon в M [S, a] и M [S, b], которые снова являются E1 и E2 соответственно.

Для производственного правила B -> S оно будет добавлено в таблицу синтаксического анализа в позиции M [B, FIRST (S)], теперь FIRST (S) также содержит эпсилон, поэтому добавьте B -> S к M [S, FOLLOW (B)], и FOLLOW (B) содержит {$}, т. Е. M [S, $], то есть E3.

эпсилон соответствует пустой строке.

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE CS 2012 | Вопрос 65

0.00 (0%) 0 votes