Уточнение / «мелкий шрифт» в ответе DC: все CFL в форме нормальной формы Хомского могут быть эффективно проанализированы с помощью алгоритма CYK, и все CFL могут быть преобразованы в CNF. Однако преобразование произвольного CFL в CNF может занять экспоненциальное пространство в худшем случае, в зависимости от некоторых алгоритмов. (Я не знаю об алгоритме, который гарантирует преобразование P-времени здесь, кто-нибудь еще? Нужно рассмотреть все крайние / худшие случаи, такие как недетерминированные CFL или неоднозначные .) Состояния Википедии в разделе CNF Порядок преобразований
Более того, раздувание в наихудшем случае по размеру грамматики [примечание 4] зависит от порядка преобразования. Используя | G | чтобы обозначить размер исходной грамматики G, увеличение размера в худшем случае может варьироваться от до , в зависимости от используемого алгоритма преобразования. [6]: 72 2 | G ||G|222|G|
Поэтому кажется, что могут существовать КЛЛ, которые не могут быть эффективно проанализированы. Большинство языков программирования эффективно конвертируются в CNF (или, возможно, в основном определяются в CNF или почти CNF), поэтому синтаксический анализ CFL для «типичных» языков «практически» в P. Вероятно, существуют некоторые современные исследования этой сложности в наихудшем случае (но это не так. найди на нем последние статьи по беглому поиску). Например, эта более старая (1973 г.) исследовательская работа Greibach также, похоже, указывает на то, что производительность в худшем случае может не ограничиваться P. см., Например.