Компиляторы
1. Альфред Ахо — Компиляторы. Принципы, технологии, инструменты (Dragon Book)
-
Что изучаем:
- Основы лексического, синтаксического и семантического анализа.
- Построение деревьев разбора, абстрактного синтаксического дерева (AST).
- Оптимизация кода, генерация промежуточного представления и машинного кода.
- Принципы работы синтаксических анализаторов (парсеров), сканеров, компиляторов целиком.
-
Что получаем:
- Глубокое понимание как язык программирования превращается в исполняемый код.
- Навыки проектирования простого компилятора или интерпретатора.
- Основы для изучения языков программирования и инструментов анализа кода.
2. Вирт Н. — Построение компиляторов (Классика программирования, 2010)
-
Что изучаем:
- Практический подход к построению компилятора для учебного языка (например, Pascal или Modula-2).
- Разбор пошаговой генерации кода от исходного текста до исполняемого файла.
- Внимание к деталям, которые упрощают учебное понимание компиляторов.
-
Что получаем:
- Понимание принципов построения компиляторов “с нуля” на практике.
- Возможность экспериментировать с собственными мини-языками или интерпретаторами.
- Хорошая база для более сложных систем компиляции или анализа исходного кода.
Итог по разделу “Компиляторы”:
| Книга | Что изучаем | Практическая польза |
|---|---|---|
| Ахо — Компиляторы | Лексический и синтаксический анализ, AST, генерация кода, оптимизация | Понимание устройства компилятора, основ построения интерпретаторов |
| Вирт — Построение компиляторов | Пошаговое построение компилятора для учебного языка, практический подход | Опыт реализации компилятора и тестирование языковых конструкций |
Главный эффект: После прочтения этого раздела у тебя будет:
- Полное понимание процесса трансляции исходного кода в исполняемый.
- Навыки создания собственного компилятора или интерпретатора.
- Базовое понимание структур и алгоритмов, лежащих в основе современных языков программирования.