Можно ли анализировать все однозначные грамматики за линейное время?

22

Когда я возился с неканоническим анализом LR, я придумал метод синтаксического анализа (с таблицами бесконечного размера, что делает его несколько непрактичным ), способный анализировать ровно однозначные грамматики за времени, и мне было интересно, возможно ли это сделать лучше:O(n2)

Можно ли анализировать все однозначные грамматики за линейное время?

Я вполне уверен, что где-то читал, что это так, но он не появляется при поиске в Интернете. Тот же вопрос был задан здесь , но никакого ответа не было дано, насколько я знаю.

Алекс тен Бринк
источник

Ответы:

23

Однозначный бесконтекстный разбор в с использованием алгоритма Эрли. Существует ли алгоритм синтаксического анализа, работающий в линейном времени на всех однозначных контекстно-свободных грамматиках, является открытой проблемой. Одно из наиболее продвинутых утверждений такого рода принадлежит Лео [1991], который показал, что вариант парсинга Эрли работает за линейное время для всех грамматик LRR.O(n2)

[Лев 1991] Joop MIM Leo. Общий не зависящий от контекста алгоритм синтаксического анализа, работающий за линейное время на каждой грамматике LR ( ) без использования ретроспективы, Теоретическая информатика 82 (1): 165--176. doi: 10.1016 / 0304-3975 (91) 90180-Ak

Сильвен
источник