Какие есть учебные материалы по абстрактным синтаксическим древам, синтаксическим и лексическим анализаторам?
Если уроков для новичков типа "JavaScript с нуля" или "React с нуля" много, то создание АСД, синтаксические и лексические анализаторы - это какие-то закрытые знания, доступные только для посвящённых. Я понимаю, что это материал не для новичков, но ведь продвинутые и эксперты тоже нуждаются в новых знаниях, а значит, учебных материалах для своего уровня.
Итак, на данный момент написания этого вопроса я полный ноль в АСД, создании лексеров и синтаксических анализаторов да и вообще не понимаю, как такую структуру, как построчно выполняемый код, приводят к древовидной форме. Что почитать по этой теме? Что изучить? Какие материалы есть?
Что-то мне подсказывает, что вам может помочь книга "Структура и интерпретация компьютерных программ" (SICP) в ней даже описано создание полноценного компилятора, правда, используемый там язык Scheme, диалект Лиспа, можно сказать уже является синтаксическим деревом. Также я нашел у себя в библиотеке книгу "Компиляторы: принципы, технологии и инструментарий", судя по оглавлению, это как раз то, что вам нужно.
Судя по описанию уже могу сказать что подошли.
Буду заниматься их приобретением. Я говорю об этом как о большом деле ввиду их суммарной стоимости в 7000 рублей :) Но так как из описания я понял, что это как раз то, что надо, буду вкладываться.
Wylaroren, SICP легко скачать в интернете, книгу про компиляторы думаю тоже, рекомендую для начала ознакомиться с электронной версией, дабы не потратить деньги зря.
На данный момент я изучаю "Компиляторы: принципы, технологии и инструментарий".
Могу сказать, что для меня, программиста с пятилетним стажем, книга оказалась крайне сложной, но так как альтернатив немного, то я её буду изучать до конца. Скорее всего, первым прочтением книги так и будет что-то вроде "моя твоя не понимать", но потом, уже с небольшой практикой, буду читать её повторно.
Из плюсов книги могу отметить готовые лексер и парсер на языке Java, которые я уже взял за основу. К сожалению, с точки зрения читабельности кода его качество очень низкое (автор "Чистого кода" плакал бы кровавыми слезами, если бы его почитал) - алгоритмы-то не сложные, но имена переменных и методов - настоящий шифр.
Ну что же, я всё равно не сдамся. Не знаю, сколько времени это займёт, но я очень хочу создать технологии, составляющие конкуренцию React Native и Flutter, и именно это желание является движущей силой в изучении этой очень ценной с точки зрения количества информации, но крайне сложной и с плохо проработанной методикой книги.