На тот случай, если вам интересно, почему это не контекстная грамматика, вот краткое объяснение:
Не зависящая от контекста грамматика - это грамматика, которая может быть распознана автоматом, который является конечнымавтомат состояний с добавлением стека.
Примером CFG является ^ nb ^ n.Если вы думаете об этом, мы можем вставить токен в наш стек для каждого «a», который мы видим, и вытолкнуть токен из стека для каждого «b», который мы видим.Мы потерпим неудачу в любой момент, если мы - нажмем токен после выталкивания (a 'b', сопровождаемый 'a') - закончим обработку строки, но у нас все еще есть токены в стеке (больше 'a's, чем' b) - попытаемсявытолкнуть пустой стек (больше «b» чем «a»)
Если вы подумаете о том, как распознать ^ nb ^ nc ^ n с автоматом, вы, вероятно, поймете, что это невозможно после некоторой игры вокруг.
Надеюсь, это поможет.