С чего начать изучать парсинг и реализацию языков программирования?
Мне всегда была интересна тема парсинга и реализации языков программирования, но все время не мог найти время для этой темы. Сейчас время появилось, но я не знаю, с чего начать.
Хочу научиться писать простые языки программирования по типу Pascal
Так же интересно понять, как парсится JSON и PUG (Jade)
И понять, как в все это дело превращается в AST и потом выполняется или компилируется
В интернете куча информации, и мне попадается море терминов (Recursive descent parser, top-down parser , LL(k), EBNF), но не понятно, с чего начать.
Подскажите пожалуйста, как и с какой книги или статьи начать? (Буду рад любой литературе. Но если есть возможность, то более практико-ориентированную). Заранее спасибо.
Советую сначала определиться с областью, т.к. от этого зависит, какие структуры данных (числа, списки, матрицы, объекты...) и какие алгоритмы (сортировка, поиск, решение уравнений, статистика...) вы будете реализовывать. Напр., для программирования контроллеров вам нужно знать теорию конечных автоматов, принципы сетевых взаимодействий). А, может, понадобится реализация параллельных вычислений (нити, многоядерные процессоры, математика на графическом процессоре)