С чего начать изучать парсинг и реализацию языков программирования?

Мне всегда была интересна тема парсинга и реализации языков программирования, но все время не мог найти время для этой темы. Сейчас время появилось, но я не знаю, с чего начать.
Хочу научиться писать простые языки программирования по типу Pascal
Так же интересно понять, как парсится JSON и PUG (Jade)

И понять, как в все это дело превращается в AST и потом выполняется или компилируется
В интернете куча информации, и мне попадается море терминов (Recursive descent parser, top-down parser , LL(k), EBNF), но не понятно, с чего начать.
Подскажите пожалуйста, как и с какой книги или статьи начать? (Буду рад любой литературе. Но если есть возможность, то более практико-ориентированную). Заранее спасибо.
  • Вопрос задан
  • 1290 просмотров
Пригласить эксперта
Ответы на вопрос 5
@d-stream
Готовые решения - не подаю, но...
Можно например начать с книжки Лебедев В.Н. "Введение в системы программирования". Для начала понимания l|r-грамматик и т.п.
Ну и в том или ином виде - гуглить lex, yacc - это уже "практика"
Ответ написан
Комментировать
@evgeniy_lm
Начнем с того, что Pascal имеет один из самых сложных компиляторов, проще язык HQ9+ он для этих целей и создан.
Начните с цикла статей Компилятор домашнего приготовления, а там как пойдет
Ответ написан
Комментировать
@potan
Функциональный программист
Надо хотя бы познакомиться с формальными грамматиками. Потом есть два пути - использовать препроцессоры, типа yacc, happy или посмотреть какую-нибудь библиотеку комбинаторных парсеров. Последними пользоваться легче, но если взатся за них без представления о грамматиках, то можно очень легко получить неэффективный код. Препроцессоры от этого немного защищают.
Ответ написан
Комментировать
@Verz1Lka
Web scraping expert
python + scrapy.org
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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