Легко ли создать контекстно-свободный грамматический парсер? - PullRequest
0 голосов
/ 29 октября 2018

Легко ли создать контекстно-свободный грамматический парсер? Могут ли они быть созданы автоматически через генераторы? Есть ли бумаги на эту тему?

1 Ответ

0 голосов
/ 29 октября 2018

Обычно это делается с помощью парсеров Earley, GLR или GLL. Вы можете найти исследовательские работы, которые описывают, как они должны быть реализованы; основные идеи довольно просты (проверьте Scholar.google.com и выполните поиск по этим именам как индексным терминам).

Но структуры производственных данных и детали алгоритма становятся довольно грязными. Люди, которые создают настоящие парсерные движки, как это, обычно работали над многими такими движками, прежде чем они доберутся до этой стадии, по крайней мере, так, как это было для меня. (Я создал механизмы синтаксического анализа LALR и GLR, а также синтаксический анализатор рекурсивного спуска, который был автоматически сгенерирован из грамматик).

Я полагаю, вам лучше получить существующий генератор синтаксических анализаторов, который использует один из этих подходов, а не пытаться создать его самостоятельно. После того, как вы использовали его некоторое время и поняли проблемы, затем вы можете рассмотреть возможность реализации. Обычно не для слабонервных.

...