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

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

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

1
Есть ли какой-нибудь неинтеллектуальный алгоритм разбора 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 - это «проклятие» многих алгоритмов синтаксического анализа: мне еще не приходилось сталкиваться с каким-либо алгоритмом синтаксического анализа однозначных CFG, …

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

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

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

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

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

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

3
Что вы получите, если добавите параметры в контекстно-свободные грамматики?
Я думал о грамматиках для чувствительных к индендангу языков, и похоже, что грамматики CF сработают, если их объединить с параметрами. В качестве примера рассмотрим этот фрагмент для упрощенной грамматики Python в ANTLR-подобном формате: // on top-level the statements have empty indent program : statement('')+ ; // let's consider only one …

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

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

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

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

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

3
Как эта грамматика 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), я попытался построить его таблицу синтаксического анализа, но я получаю несколько продукций …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.