Книги / Алгоритмы и теория / Теория / Оптимизирующие компиляторы. Структура и алгоритмы

Оптимизирующие компиляторы. Структура и алгоритмы

Константин Владимиров

Книга посвящена устройству и алгоритмам оптимизирующих компиляторов. Рассматриваются все этапы трансформации программы от исходного кода до исполняемого файла: лексический и синтаксический анализ, промежуточные представления, машинно-независимые и машинно-зависимые оптимизации, кодогенерация, ассемблирование и линковка.

Особое внимание уделяется теоретическим основам оптимизаций: потоку управления, потоку данных, решеткам, распространению констант, нумерации значений. Подробно разбирается SSA-представление (статическая форма единственного присваивания) — ключевая технология современных компиляторов, включая построение SSA, отношения доминирования, фронт доминирования и графы схождения.

Книга содержит практические примеры и задачи для самостоятельной проработки, что позволяет закрепить теоретические знания. Рассматриваются реальные реализации, в том числе в LLVM. Материал будет полезен разработчикам компиляторов, инструментов разработки, а также всем, кто хочет глубоко понять, как работают современные компиляторы и как они оптимизируют код.