[1] Проектирование и конструирование компиляторов
Небольшая книга, выпущенная издательством Вильямс в серии "Основы вычислительных систем". Содержит краткое, но достаточно полное изложение всех фаз процесса компиляции. Книга построена на применении систем Lex и YACC и содержит описание основ P-кода и байт-кодов JVM. В конце каждой главы есть небольшой набор упражнений, а в конце книги приведены решения. Может служить основой семестрового курса по компиляторам. У того же автора есть другая, более серьезная книга "Проектирование и конструирование компиляторов", переведенная и изданная в 1984 году в издательстве Финансы и статистика. Однако изложение в ней основано на языке Алгол-68, который в настоящее время в России практически забыт. По крайней мере, его реализации на персональных компьютерах мне не встречались.
[2] Компиляторы. Принципы, технологии, инструменты, 2-е издание
Это новое издание классической "книги Дракона" полностью переработано и включает последние разработки в области компиляции.
По сравнению с изданием 1985 года (русский перевод издан в 2001) - книга заметно потолстела.
Новый материал представлен в следующих главах:
Глава 7. Среды времени выполнения
Глава 10. Параллелизм на уровне команд
Глава 11. Оптимизация параллелизма и локальности
Глава 12. Межпроцедурный анализ
Эта книга начинается с изложения основных принципов разработки компиляторов, включая детальное рассмотрение лексического и синтаксического анализа и генерации кода. Особенностью данного издания является широкое освещение вопросов оптимизации кода, в том числе для работы в многопроцессорных системах.
Строгость изложения материала смягчается большим количеством практических примеров. Написание компиляторов охватывает такие области знаний, как языки программирования, архитектура вычислительных систем, теория языков, алгоритмы и технология создания программного обеспечения. Помочь в освоении этих технологий и соответствующего инструментария и призвана данная книга.
[3] Построение компиляторов
Книга известного специалиста в области информатики Никлауса Вирта написана по материалам его лекций по вводному курсу проектирования компиляторов. На примере простого языка Оберон-0 рассмотрены все элементы транслятора, включая оптимизацию и генерацию кода. Приведен полный текст компилятора на языке программирования Оберон. Для программистов, преподавателей и студентов, изучающих системное программирование и методы трансляции.
[4] Алгоритмы, языки, автоматы и компиляторы
Рассматриваются общие вопросы программирования: теория конечных автоматов с реализацией алгоритмов на C#, методы синтаксического анализа, системы Линденмайера, связь языков и задач на принятие решения, машины Тьюринга. Практически для каждой темы приводится реализация алгоритмов на C#. Рассматривается создание компилятора переднего плана с простого языка.
[5] LLVM. Инфраструктура для разработки компиляторов
LLVM - новейший фреймворк для разработки компиляторов. Благодаря простоте расширения и организации в виде множества библиотек, LLVM легко поддается освоению даже начинающими программистами, вопреки устоявшемуся мнению о сложности разработки компиляторов.
Сначала эта книга покажет, как настроить, собрать и установить библиотеки, инструменты и внешние проекты LLVM. Затем познакомит с архитектурой LLVM и особенностями работы всех компонентов компилятора: анализатора исходных текстов, генератора кода промежуточного представления, генератора выполняемого кода, механизма JIT-компиляции, возможностями кросс-компиляции и интерфейсом расширений. На множестве наглядных примеров и фрагментов исходного кода книга поможет вам войти в мир разработки компиляторов на основе LLVM.
Издание предназначено энтузиастам, студентам, а также разработчикам компиляторов, интересующимся LLVM. Читатели должны знать язык программирования С++ и, желательно, иметь некоторые представления о теории компиляции.