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

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

68
Теоретико-языковое сравнение грамматик LL и LR

Люди часто говорят, что парсеры LR (k) более мощные, чем парсеры LL (k) . Эти заявления в большинстве случаев расплывчаты; в частности, следует ли сравнивать классы для фиксированного или объединения по всем ? Так как на самом деле ситуация? В частности, меня интересует, как вписывается LL...

23
Есть ли какой-нибудь неинтеллектуальный алгоритм разбора CFG, который распознает EPAL?

EPAL, язык четных палиндромов, определяется как язык, генерируемый следующей однозначной контекстно-свободной грамматикой: S→aaS→aaS \rightarrow a a S→bbS→bbS \rightarrow b b S→aSaS→aSaS \rightarrow a S a S→bSbS→bSbS \rightarrow b S b EPAL - это «проклятие» многих алгоритмов синтаксического...

20
Разбор произвольных контекстно-свободных грамматик, в основном коротких фрагментов

Я хочу разобрать определенные пользователем доменные языки. Эти языки обычно близки к математическим обозначениям (я не разбираю естественный язык). Пользователи определяют свои DSL в нотации BNF, например так: expr ::= LiteralInteger | ( expr ) | expr + expr | expr * expr Подобные входные данные 1...

16
Для каждого «злого» регулярного выражения существует ли не злая альтернатива или дьявол в грамматике?

По-видимому, атаки ReDos используют характеристики некоторых (в противном случае полезных) регулярных выражений ... по сути, вызывая взрыв возможных путей через граф, определенный NFA. Можно ли избежать таких проблем, написав эквивалентное «не злое» регулярное выражение? Если нет (таким образом,...

16
Являются ли регулярные выражения

Если у меня есть грамматика типа 3, она может быть представлена ​​в автомате (без каких-либо операций со стеком), поэтому я могу представлять регулярные выражения с использованием контекстно-свободных языков. Но могу ли я знать, что грамматика типа 3 - это , L L ( 1 ) , S L R ( 1 ) и т. Д. Без...

15
Зачем разделять лексинг и разбор?

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

14
Когда

Согласно статье в Википедии , L в означает «сканирование слева направо», а «R» означает «крайний правый вывод». Однако в оригинальной статье Кнута по грамматике L R ( k ) он определяет язык L R ( k ) (на стр. 610) как язык, который «переводим слева направо с ограничением k ».L R (k )Lр(К)LR(k)L R (...

14
Что такое IELR (1) -парсер?

Я пытаюсь научить себя использованию зубров. На странице man bison (1) говорится о зубре: Создайте детерминированный LR или обобщенный анализатор LR (GLR) с использованием таблиц LALR (1), IELR (1) или канонических LR (1). Что такое IELR-парсер? Все соответствующие статьи, которые я нашел во...

13
Что вы получите, если добавите параметры в контекстно-свободные грамматики?

Я думал о грамматиках для чувствительных к индендангу языков, и похоже, что грамматики CF сработают, если их объединить с параметрами. В качестве примера рассмотрим этот фрагмент для упрощенной грамматики Python в ANTLR-подобном формате: // on top-level the statements have empty indent program :...

13
Удаление левой рекурсии в грамматике при сохранении левой ассоциации оператора

У меня проблема с этим упражнением: Пусть G будет следующей неоднозначной грамматикой для λ-исчисления: E → v | λv.E | EE | (E) где E - единственный нетерминальный символ, λv.E представляет абстракцию относительно переменной v в E, а EE представляет приложение. Определите LL (1) грамматику G ′ так,...

13
Чем не двусмысленность отличается от детерминизма?

Я пытаюсь понять, что подразумевается под «детерминистическим» в выражениях, таких как «детерминистическая контекстно-свободная грамматика». (Есть более детерминированные «вещи» в этой области). Я был бы признателен за пример более, чем самое сложное объяснение! Если возможно. Мой основной источник...

13
Почему использование лексера / парсера для двоичных данных так неправильно?

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

12
Как эта грамматика LL (1)?

Это вопрос из Книги Дракона. Это грамматика: S→AaAb∣BbBaS→AaAb∣BbBaS \to AaAb \mid BbBa A→εA→εA \to \varepsilon B→εB→εB \to \varepsilon Вопрос состоит в том, как показать, что это LL (1), но не SLR (1). Чтобы доказать, что это LL (1), я попытался построить его таблицу синтаксического анализа, но я...

12
Есть ли способ различить грамматику LL (k) и LR (k)?

Я недавно изучал проектирование компиляторов. Я узнал о двух типах грамматики: один - это грамматика LL, а другой - грамматика LR. Мы также знаем, что каждая грамматика LL - это LR, то есть грамматика LL - это правильное подмножество грамматики LR. Первый используется при синтаксическом анализе...

12
Нужно ли языку регулярных выражений автомат для его анализа?

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

10
Парсер рекурсивного спуска с возвратом для грамматики

Может кто-то просветить меня, почему парсер рекурсивного спуска с возвратом, который пробует продукцию и (в этом порядке), не распознает язык, образованный грамматикой .S→aSaS→aSaS \rightarrow aSaS→aaS→aaS \rightarrow aaS→aSa | aaS→aSa | aaS \rightarrow aSa\ |\ aa Похоже, он разбирает только слова...

10
Насколько большим может быть автомат LR (1) для языка, чем соответствующий автомат LR (0)?

В синтаксическом анализаторе LR (0) каждое состояние состоит из набора элементов LR (0), которые являются продукцией, аннотированной позицией. В синтаксическом анализаторе LR (1) каждое состояние состоит из набора элементов LR (1), которые являются продукцией, аннотированной позицией и символом...

10
Можно ли превратить парсер Earley в нечеткий парсер, похожий на алгоритм Levenshtein Automata Algo для DFA?

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

9
Машина Тьюринга с двумя состояниями для сопоставления скобок

В колледже мы изучали теорию вычислений в целом и машины Тьюринга более конкретно. Одним из замечательных теоретических результатов является то, что за счет потенциально большого алфавита (символов) вы можете уменьшить количество состояний до 2. Я искал примеры различных машин Тьюринга, и...

9
Как восстановить лес синтаксических деревьев из вектора Эрли?

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