Из comp.compilers FAQ :
«Программирование персонального компьютера» Пер Бринч Хансен Прентис-Холл 1982 ISBN 0-13-730283-5
В этой, к сожалению, озаглавленной книге объясняется проектирование и создание однопользовательской среды программирования для микросхем с использованием языка, подобного Паскалю, называемого Edison. Автор представляет весь исходный код и пояснения к пошаговой реализации компилятора Edison и простой поддерживающей операционной системы, все написано в самом Edison (за исключением небольшого поддерживающего ядра, написанного на символическом ассемблере для PDP 11/23; полный источник также можно заказать для IBM PC).
Наиболее интересные вещи об этой книге: 1) ее способность продемонстрировать, как создать законченный, автономный, самодостаточный, полезный компилятор и операционную систему, и 2) интересное обсуждение проблем проектирования и спецификации языка, а также выкл в главе 2.
«Бринч Хансен на компиляторах Паскаля» Пер Бринч Хансен Прентис-Холл 1985 ISBN 0-13-083098-4
Еще одна легкая в теории книга о том, как ее кодировать. Автор представляет дизайн, реализацию и полный исходный код для компилятора и интерпретатора p-кода для Pascal- (Pascal "минус"), подмножества Pascal с булевыми и целочисленными типами (но без символов, вещественных чисел, подстраничных или перечисляемых типов). , определения констант и переменных, а также типы массивов и записей (но не упакованные, не варианты, не набор, указатель, безымянные, переименованные или типы файлов), выражения, операторы присваивания, определения вложенных процедур со значениями и переменные параметры, операторы if, операторы while, и блоки начала и конца (но без определений функций, процедурных параметров, операторов и меток goto, операторов case, операторов repeat, для операторов и с операторами).
Компилятор и интерпретатор написаны на Pascal * («звезда» Pascal), подмножестве Pascal, расширенном некоторыми функциями стиля Edison для создания систем разработки программного обеспечения. Компилятор Pascal * для IBM PC продается автором, но его легко перенести на любую удобную платформу Pascal.
Эта книга упрощает разработку и реализацию компилятора. Мне особенно нравится, как автор обеспокоен качеством, надежностью и тестированием. Компилятор и интерпретатор могут легко использоваться в качестве основы для более сложного языка или проекта компилятора, особенно если вам необходимо быстро что-то запустить и запустить.