GLR парсинг ресурсов алгоритма

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

Я знаю, что Бизон может произвести анализаторы GLR, и, учитывая он находится под GPL, я могу исследовать его кодекс, однако было бы хорошо иметь полное описание алгоритма.

Так, кто-либо знает о каких-либо хороших ресурсах там, которые я могу использовать?Спасибо.

23
задан ljs 25 January 2010 в 00:22
поделиться

3 ответа

Некоторые хорошие вещи, которые я столкнулся с онлайн:

и для получения более подробной информации:

  • Технический отчет UCB / CSSD-2-1214 , который является расширенной версией вышеуказанного Бумага;
  • Бумага, на которую ссылаются в документацию . Документация : Элизабет Скотт, Адриан Джонстон и Шамса Садаф Хуссейн. Генерализованные анализаторы LR . TR-00-12, Royal Holloway, Лондонский университет, Департамент информатики, декабрь 2000 года.

И я знаю из третьего анализатора открытого источника ГЛР: DPARSER .

15
ответ дан 29 November 2019 в 02:48
поделиться

Из того, что я знаю, он функционирует так же, как анализатор LALR - за исключением случаев, когда он сталкивается с двусмысленностью.

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

В конце все, кроме одного анализа должно быть умер - и выжившие - это «правильный» анализ этих неоднозначных точек.

2
ответ дан 29 November 2019 в 02:48
поделиться

Лучшее описание, которое я когда-либо видел, с изображениями, иллюстрирующими каждый шаг алгоритма, содержится в этой книге:

http://books.google.ca/books?id=05xA_d5dSwAC&lpg=PA381&dq=generalized%20deterministic % 20parsers & pg = PA381 # v = onepage & q = generalized% 20deterministic% 20parsers & f = false

Для псевдокода перейдите к источнику: Generalized LR Parsing by Tomita, page 70 или около того. Статья Фарши содержит краткое описание.

http://books.google.ca/books?id=PvZiZiVqwHcC&lpg=PP1&dq=generalized%20lr%20parsing&pg=PA70#v=onepage&q=&f=false

Это одна из техник, которые я пробовал для qb.js ( qbasic в javascript ).

3
ответ дан 29 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: