Подтвердить что ты не робот

Переписка между типами классов и уровнями грамматики в иерархии Хомского

Мой вопрос касается классов типа Аппликативный и Монад, с одной стороны, и контекстно-зависимых и контекстно-зависимых уровней грамматики иерархии Хомского - с другой.

Я слышал, что существует соответствие между типами классов и уровнями грамматики. Насколько точно это соответствие?

То есть, можно ли анализировать все контекстно-свободные грамматики, используя ничего более сильного, чем аппликативные комбинаторы, и все ли грамматики, которые могут быть проанализированы, используя ничего более сильного, чем аппликативные комбинаторы, не содержащие контекста? Другими словами, класс Applicative type точно соответствует контекстно-свободным грамматикам?

И тот же вопрос, за исключением "контекстно-свободный", замененный "контекстно-зависимым" и "Аппликативным по Монаде".


Осветление Баунти: do type class (es) соответствуют уровням грамматики? Например, есть ли набор классов типов, которые обеспечивают все операции, необходимые для выражения регулярных языков и не более?

Мотивация вопроса заключается в том, что я работал над парсером и хотел определить, какой уровень грамматики был в моей реализации, на основе используемых множителей. Это возможно?

4b9b3361

Ответ 1

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

  • Выбор (MonadPlus, Alternative)
  • Рекурсия

который сказал, с (не детерминированным) выбором и (произвольной) рекурсией, аппликативные парсеры по существу точно соответствуют интерфейсу для BNF (и поэтому могут анализировать все CFL), в то время как монады могут обеспечивать произвольные контекстно-зависимые операции.