Обычная грамматика: - грамматика, содержащая следующую продукцию: RG:
V->TV or VT
V->T
где V = переменная и T = клемма
RG может быть левой линейной грамматикой или правой линейной грамматикой, но не средней линейной грамматикой.
Как мы знаем, все RG являются линейной грамматикой, но RG - только левая или правая линейная грамматика.
Обычная грамматика может быть неоднозначной.
S->aA|aB
A->a
B->a
Неоднозначная грамматика: - для строки x их существует более одного LMD или более RMD или более одного дерева синтаксического анализа или одного LMD и одного RMD, но оба создают различное дерево синтаксического анализа.
S S
/ \ / \
a A a B
\ \
a a
эта грамматика является неоднозначной грамматикой, потому что два дерева разбора.
CFG: - Грамматика называется CFG, если ее Производство находится в форме:
V->@ where @ belongs to (V+T)*
DCFL: - поскольку мы знаем, что все DCFL - это грамматика LL (1), а все LL (1) - это LR (1), поэтому она никогда не будет неоднозначной. поэтому DCFG никогда не будет двусмысленным.
Мы также знаем, что все RL являются DCFL, поэтому RL никогда не будет двусмысленным. Обратите внимание, что RG может быть неоднозначным, но RL нет.
CFL: CFl Может или не может быть двусмысленным.
Примечание: RL никогда не будет по своей сути неоднозначным.