Я бы предложил искать источник компилятора Pascal, C или SmallC для MS-DOS (16 бит). В частности, если они ограничиваются 16-разрядным плоским реальным режимом (< = 64 КБ памяти), они должны быть довольно простыми.
Поддержка сегментированного реального режима добавляет большую сложность, которую лучше всего избегать, и это не имеет значения для 32-разрядной программы с защитой в режиме плоского режима (32-битное программирование, отличное от ОС).
Для процессора, отличного от x86, пример программы для серии статей Джека Креншоу «Let's Build a Compiler», которая представляет собой компилятор синтаксиса, подобный Pascal, предназначенный для 16/32-разрядного процессора Motorola MC68000. Существует также Марсель Хендрикс, написанный в Форте на win32 version of the series.
Существует также TCC - Tiny C Compiler, которые поддерживают выход PE-i386 (то есть Win32).
Хотя если бы вы не могли прочитать всю ссылку SO, которую дал Firas Assaad в комментариях, содержащий все, кроме одной из этих ссылок, я считаю, что вы найдете исходный код компилятора ужасно длинным ,
Задать вопрос: http://stackoverflow.com/ вопросы/1669/learning-to-write-a-compiler –
Это список книг. – saf
На самом деле я разрабатываю компилятор для моего языка для платформы Win32. Я рекомендую вам прочитать в файле заголовка PE и захватить копию справочного руководства x86 Intel для реализации опкодов. Затем вы должны создать некоторый слой «абстрагирования» выполнения и использовать эту модель для создания прогнозов состояния процессора для создания достоверной сборки. – Pindatjuh