Я подумал, что глава 8 Кернигана и Пайка Среда программирования Unix была превосходной.Он охватывает большую часть программирования в среде Unix, и все это при реализации языка программирования.
Глава 8 называется Разработка программ .В нем обсуждается разработка нетривиальной программы на разных этапах проектирования.Эта нетривиальная программа - hoc, калькулятор высокого порядка.Подробнее о hoc см. http://en.wikipedia.org/wiki/Hoc_(programming_language)
Это отличное практическое введение в реализацию простого языка с использованием стандартных инструментов yacc и lex.yacc и lex - слишком много, чтобы их здесь охватывать, но, следуя примерам из этой книги и выполняя упражнения, вы развиваете их понимание.
Развитие длится через различные фазы;на первом этапе у вас даже нет переменных в языке.На третьем этапе у вас есть переменные, определенные константы (PI, E и т. Д.) И встроенные функции, такие как sin () и log ().На последнем этапе у вас есть полностью реализованный язык.
Теперь, hoc - это лучший язык, который можно попробовать и реализовать?Я понятия не имею, но я знаю, что Среда программирования Unix была отличной книгой для чтения параллельно с традиционной книгой по компиляторам.Когда я начал читать книгу компилятора Aho (книгу драконов), я перечитал 8-ю главу TUPE и следовал примерам и упражнениям.Конечно, любой может перепечатать код из книги, но упражнения требуют, чтобы вы хорошо понимали, что происходит.
В конце я не думаю, что имеет значение, какой именно язык вы выберетеделать, но процесс, которому вы следуете при его реализации.