Пусть дана грамматика G = (N, T, P, S). Тогда если правила грамматики не удовлетворяют никаким ограничениям, то ее называют грамматикой типа 0, или грамматикой без ограничений.
Если каждое правило грамматики, кроме S
e, имеет вид
, где |
|
|
|, и в том случае, когда S
e
P, символ S не встречается в правых частях правил,то грамматику называют грамматикой типа 1, или неукорачивающей.
Если каждое правило грамматики имеет вид A
, где A
N,
(N
T)*, то ее называют грамматикой типа 2, или контекстно-свободной (КС-грамматикой).
Если каждое правило грамматики имеет вид либо A
xB, либо A
x, где A, B
N, x
T* то ее называют грамматикой типа 3, или праволинейной.
Язык типа 1 - контекстно-зависимым (КЗ), язык типа 2 - контекстно-свободным (КС), язык типа 3 - праволинейным.
K3
K2
K1
K0.
Грамматика G называется неоднозначной, если существует цепочка w, для которой имеется два или более различных деревьев вывода в G.
Грамматика G называется леворекурсивной, если в ней имеется нетерминал A такой, что существует вывод
для некоторой цепочки w.
Атрибутной грамматикой называется четверка AG = (G, AS, AI, R), где
· G = (N, T, P, S) - приведенная КС-грамматика;
· AS - конечное множество синтезируемых атрибутов;
· AI - конечное множество наследуемых атрибутов, AS
AI =
;
· R - конечное множество семантических правил.
Атрибутная грамматика AG сопоставляет каждому символу X из N
T множество AS(X) синтезируемых атрибутов и множество AI(X) наследуемых атрибутов.






