Онлайн-ресурсы для написания генератора анализатора

StackOverflow https://stackoverflow.com/questions/1359486

  •  20-09-2019
  •  | 
  •  

Вопрос

Я хочу написать генератор анализатора в образовательных целях, и мне было интересно, есть ли хорошие онлайн-ресурсы или учебные пособия, которые объясняют, как его написать. Что -то на строках «Давай построим компилятор» Джека Креншоу.

Я хочу написать генератор анализатора для LR (1) грамматики.

У меня есть достойное понимание теории, стоящей за созданием действий и таблиц, но я хочу какой -то ресурс, который поможет мне в реализации.

Предпочтительными языками являются C/C ++, Java, хотя даже другие языки в порядке.

Спасибо.

Это было полезно?

Решение

Я согласен с другими, книга Дракона - хороший опыт для анализа LR.

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

Metaii Компилятор Учебник

Все это основано на удивительной маленькой 10-страничной технической бумаге Val Schorre: Meta II: Язык написания компилятора, ориентированный на синтаксис От честного до бога 1964 года. Я научился создавать компиляторы из этого еще в 1970 году. Есть потрясающий момент, когда вы, наконец, Grok, как компилятор может восстановить себя ....

Я знаю автора веб -сайта из моих студенческих дней, но не имеет никакого отношения к веб -сайту.

Другие советы

Если вы хотите пойти по маршруту Python, я бы порекомендовал следующее.

Я обнаружил, что оба они очень полезны, и Пол МакГуайр, автор книги «Пипарсинг», очень помогает вам, когда вы столкнетесь с проблемами. Обработка текста книги в Python - это просто удобная ссылка на ваши кончики пальцев и помогает вам привести в правильное настроение при попытке построить анализатор.

Я также хотел бы отметить, что язык OO лучше подходит как двигатель для анализа языка, потому что он расширяется, а полиморфизм - это правильный способ сделать это (IMHO). Глядя на проблему с точки зрения государственной машины, а не «ищите полуколон в конце XYZ», продемонстрирует, что ваш анализатор становится гораздо более надежным в конце.

Надеюсь, это поможет!

Не совсем онлайн, но Книга дракона имеет довольно сложные дискуссии о диаграмме LR.

Мне было легче научиться писать анализаторы рекурсивных децессеров, прежде чем научиться писать анализаторы LR. Честно говоря, после многих лет написания анализаторов я никогда не находил необходимым писать анализатор LR.

Я недавно написал учебник в CodeProject под названием Реализация языковых инструментов программирования в C# 4.0 который описывает методы рекурсивного анализа спуска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top