Вопросы с тегом «parsers»

Вопросы об алгоритмах, определяющих, принадлежит ли данная строка фиксированному формальному языку.

1
Можно ли превратить парсер Earley в нечеткий парсер, похожий на алгоритм Levenshtein Automata Algo для DFA?
Есть способ выполнить нечеткий синтаксический анализ (принимает строки даже с опечатками на определенном расстоянии редактирования), с помощью DFA и встроенных автоматов Левенштейна для входного слова. Может ли нечто подобное быть сделано с парсером Earley? Мне трудно понять алгоритм, не говоря уже о том, чтобы ответить на этот вопрос.

2
Насколько большим может быть автомат LR (1) для языка, чем соответствующий автомат LR (0)?
В синтаксическом анализаторе LR (0) каждое состояние состоит из набора элементов LR (0), которые являются продукцией, аннотированной позицией. В синтаксическом анализаторе LR (1) каждое состояние состоит из набора элементов LR (1), которые являются продукцией, аннотированной позицией и символом предпросмотра. Известно, что при наличии состояния в автомате LR (1) конфигурирующий набор, …

3
Парсер рекурсивного спуска с возвратом для грамматики
Может кто-то просветить меня, почему парсер рекурсивного спуска с возвратом, который пробует продукцию и (в этом порядке), не распознает язык, образованный грамматикой .S→aSaS→aSaS \rightarrow aSaS→aaS→aaS \rightarrow aaS→aSa | aaS→aSa | aaS \rightarrow aSa\ |\ aa Похоже, он разбирает только слова из языка .{a2n | n≥1}{a2n | n≥1}\{a^{2^n}\ |\ n \ge …

2
Есть ли другое решение проблемы «висящего другого», кроме «сопоставить ближе»?
Следующая контекстно-свободная грамматика представляет неоднозначность типа «висящее другое» (представьте, что обозначает, а обозначает, а обозначает какой-то другой вид инструкции или блока): Например, может быть проанализирован как или как (это самое простое / самое короткое неоднозначное слово для этой грамматики).б с Saaaif expr thenбbbelseсcc aacbc(a(acbc))(a(ac)bc)S→ Sб S|а S|сS→aSbS|aS|c \begin{aligned} S &\rightarrow …

1
Как восстановить лес синтаксических деревьев из вектора Эрли?
Использовать вектор Эрли в качестве распознавателя довольно просто: когда достигается конец строки, вам просто нужно проверить завершенную аксиоматическую постановку, начатую в позиции 0. Если у вас есть хотя бы один, тогда строка принимается. Использование вектора Эрли для восстановления дерева (ов) синтаксического анализа менее очевидно. На самом деле, я не могу …

2
Машина Тьюринга с двумя состояниями для сопоставления скобок
В колледже мы изучали теорию вычислений в целом и машины Тьюринга более конкретно. Одним из замечательных теоретических результатов является то, что за счет потенциально большого алфавита (символов) вы можете уменьшить количество состояний до 2. Я искал примеры различных машин Тьюринга, и представлен общий пример - средство проверки / проверки скобок. …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.