Дополнительная литература
В книге Брайана Кернигана и Роба Пайка "The Unix Programming nvironment" (Brian Kernighan, Rob Pike. The Unix Programming nvironment. Prentice Hall, 1984) широко обсуждается инструментальный подход к программированию, который так хорошо поддерживается Unix. В восьмой главе ее содержится полная реализация – от грамматики до выполнимого кода – простого языка программирования.
Дон Кнут в своей книге "ТЕХ: The Program" (Don Knuth. TEX: The\ rogram. Addison-Wesley, 1986) описывает этот сложнейший текстовый процессор, приводя всю программу целиком – около 13 000 строк на Pascal – в стиле "грамотного программирования", при котором пояснения комбинируются с текстом программы, а для форматирования документами и выделения соответствующего кода используются соответствующие программы.
То же самое для компилятора ANSI С проделано у Криса Фрейзера и Дэвида Хэнсона в книге "A Retargetable С Compiler" (Chris raser, David Hanson. Retargetable С Compiler. Addison-Wesley, 1995).
Виртуальная машина Java описана в книге Тима Линдхольма и Франк Еллина "Спецификация виртуальной Java-машины", 2-е издание fim Lindholm, Frank Yellin. The Java Virtual Machine Specification. 2"d ed .ddison-Wesley, 1999).
Кен Томпсон (Ken Thompson) описал свой алгоритм (это один из самых первых патентов в области программного обеспечения) в статье "legular Expression Search Algorithm" в журнале Communications of the CM (11, 6, p. 419-422, 1968).
Работа с регулярными выражениями весьма подробно освещена в книге Джеффри Фридла "Mastering Regular xpressions" (Jeffrey Friedl. Mastering Regular Expressions. O'Reilly, 1997).
JIT-компилятор для операций двумерной графики описан в статье Эба Пайка, Барта Локанти (Bart Locanthi) и Джона Рейзера (Jonn eiser) "Hardware/Software Tradeoffs for Bitmap Graphics on the Blit", опубликованной в Software – Practice and Experience (15, 2, p. 131-152,;bruary 1985).