Существуют грамматики, в которых одна и та же цепочка может быть получена с помощью различных выводов. Например, в грамматике Г1.10 цепочка abc может быть получена с помощью двух различных выводов, и ей соответствуют два различных синтаксических дерева.
Г1.10
Vт = {a, b, c, d}, VА = {<I>, <A>, <B>},
R = { <I> <A><B>,
<A> ac,
<B> b,
<B> cb}.

Первый вывод этой цепочки имеет вид:

1) <I> <A><B> <A>b acb,

а второй можно получить так:

2) <I> <A><B> <A>cb acb

Этим выводам соответствуют разные синтаксические деревья и разборы:

Рис. 1.  

Следующая грамматика также допускает построение одной и той же цепочки с помощью двух выводов, имеющих разные синтаксические деревья.
Г1.11:
Vт = {0, +}, VА = {<I>},
R = { <I> 0,
<I> <I> + 0,
<I> 0 +<I> }

Два вывода этой грамматики, порождающие одинаковые цепочки, имеют вид:

1) <I> <I> + 0 <I> + 0 + 0 0 + 0 + 0,
2) <I> 0 + <I> 0 + 0 +<I> 0 + 0 + 0,

а синтаксические деревья, соответствующие этим выводам, можно изобразить так:

Рис. 2.  

Рассмотренное свойство грамматик называется неоднозначностью. Оно может быть определено следующим образом.

Определение. Цепочка языка L(Г) называется неоднозначной, если для её вывода существует более чем одно синтаксическое дерево. Если грамматика Г порождает неоднозначную цепочку, то она называется неоднозначной.
Свойство неоднозначности является крайне нежелательным для искусственных языков, поскольку оно не позволяет однозначным образом восстановить дерево вывода по заданной цепочке языка.
В общем случае можно сделать следующий вывод:
  1. каждой цепочке, выводимой в грамматике, может соответствовать одно или несколько синтаксических деревьев,
  2. каждому синтаксическому дереву могут соответствовать несколько выводов,
  3. каждому синтаксическому дереву соответствует единственный правый и единственный левый выводы.
Кроме того, следует подчеркнуть, что один и тот же язык может быть получен с помощью различных грамматик

Определение. Две грамматики Г1 и Г2 называются эквивалентными, ecли они порождают один и тот же язык, т.е.
L(Г1) = L(Г2)