Читаем русскоязычную статью в википедии:
https://ru.wikipedia.org/wiki/Метод_рекурсивного_спуска
Как проверить, является ли некая грамматика LL(k)-грамматикой?
Как привести грамматику к нужному виду, если она пока не является LL(k) грамматикой, но может ей стать?
Что хотя бы прочитать, чтобы это выяснить?
Не отвечает нам русская википедия.
Английская посылает читать
Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey (1986). Compilers: Principles, Techniques and Tools (first ed.). Addison Wesley. p. 183.
Там ещё есть ссылка на книгу Бердж "методы рекурсивного программирования".
https://en.wikipedia.org/wiki/Determini … ee_grammar
In 1965, Donald Knuth invented the LR(k) parser and proved that there exists an LR(k) grammar for every deterministic context-free language.
по-хорошему, нужно было бы выложить текст книги и дать к нему аннотированные комментарии,
чтобы комментарии были привязаны прямо к тексту.
Однако выкладывание текста без разрешения переводчиков (и автора, и других правообладателей)
будет являться нарушением закона о защите авторских прав. И я думаю, что это замедляет изучение темы.
есть ли где-нибудь в интернете викиучебник под свободной лицензией?
https://ru.wikibooks.org/wiki/Реализаци … ого_спуска
это не то, что хотелось найти...
Словосочетания "рекурсивный спуск", "метод рекурсивного спуска" - это неудачные словосочетания, потому что они уводят мысль в сторону. Человек думает "ага, я понимаю что такое рекурсивный вызов функции (это когда она может прямо или непрямо вызвать саму себя), а значит я понимаю, как написать парсер этим способом. Тем более, что в книге дракона приведён скелет на псевдокоде", однако думает этот человек неправильно. Если бы этот метод назывался по-другому, впадения в эту иллюзию бы не было. Такое стало возможно благодаря "кривому"-кривому переводу. Если бы переводили полное словосочетания "метод РАЗБОРА при помощи рекурсивного спуска", может быть придумали бы другое словосочетание. Словосочетание "сентенциальная форма" тоже неудачное.
Отредактировано Лис (2019-01-09 13:03:02)