LLVM: инфраструктура для разработки компиляторов
| Main Author: | |
|---|---|
| Other Authors: | |
| Summary: | LLVM – новейший фреймворк для разработки компиляторов. Благодаря простоте расширения и организации в виде множества библиотек, LLVM легко поддается освоению даже начинающими программистами, вопреки устоявшемуся мнению о сложности разработки компиляторов. Сначала эта книга покажет, как настроить, собрать и установить библиотеки, инструменты и внешние проекты LLVM. Затем познакомит с архитектурой LLVM и особенностями работы всех компонентов компилятора: анализатора исходных текстов, генератора кода промежуточного представления, генератора выполняемого кода, механизма JIT-компиляции, возможностями кросскомпиляции и интерфейсом расширений. На множестве наглядных примеров и фрагментов исходного кода книга поможет вам войти в мир разработки компиляторов на основе LLVM. Издание предназначено энтузиастам, студентам, а также разработчикам компиляторов, интересующимся LLVM. Читатели должны знать язык программирования C++ и, желательно, иметь некоторые представления о теории компиляции. Книга из коллекции ДМК Пресс - Информатика |
| Published: |
Москва, ДМК Пресс, 2015
|
| Subjects: | |
| Online Access: | https://e.lanbook.com/book/90119 https://e.lanbook.com/img/cover/book/90119.jpg |
| Format: | Electronic Book |
MARC
| LEADER | 00000nam0a2200000 i 4500 | ||
|---|---|---|---|
| 001 | 90119 | ||
| 010 | |a 978-5-97060-305-5 | ||
| 100 | |a 20250516d2015 k y0rusy01020304ca | ||
| 101 | 0 | |a rus | |
| 102 | |a RU | ||
| 105 | |a y z 000zy | ||
| 106 | |a z | ||
| 200 | 1 | |a LLVM: инфраструктура для разработки компиляторов |b Электронный ресурс |f Бруно К. Л.,Рафаэль А. | |
| 210 | |a Москва |b Москва |c ДМК Пресс |d 2015 | ||
| 215 | |a 342 с. | ||
| 330 | |a LLVM – новейший фреймворк для разработки компиляторов. Благодаря простоте расширения и организации в виде множества библиотек, LLVM легко поддается освоению даже начинающими программистами, вопреки устоявшемуся мнению о сложности разработки компиляторов. Сначала эта книга покажет, как настроить, собрать и установить библиотеки, инструменты и внешние проекты LLVM. Затем познакомит с архитектурой LLVM и особенностями работы всех компонентов компилятора: анализатора исходных текстов, генератора кода промежуточного представления, генератора выполняемого кода, механизма JIT-компиляции, возможностями кросскомпиляции и интерфейсом расширений. На множестве наглядных примеров и фрагментов исходного кода книга поможет вам войти в мир разработки компиляторов на основе LLVM. Издание предназначено энтузиастам, студентам, а также разработчикам компиляторов, интересующимся LLVM. Читатели должны знать язык программирования C++ и, желательно, иметь некоторые представления о теории компиляции. | ||
| 333 | |a Книга из коллекции ДМК Пресс - Информатика | ||
| 610 | 0 | |a сборка и установка llvm | |
| 610 | 0 | |a порядок нумерации версий llvm | |
| 610 | 0 | |a установка скомпилированных пакетов llvm | |
| 610 | 0 | |a установка с использованием диспетчера пакетов | |
| 610 | 0 | |a сборка из исходных текстов | |
| 610 | 0 | |a системные требования | |
| 610 | 0 | |a получение исходных текстов | |
| 610 | 0 | |a windows и microsoft visual studio | |
| 610 | 0 | |a mac os x и xcode | |
| 610 | 0 | |a внешние проекты | |
| 610 | 0 | |a сборка и установка дополнительных инструментов clang | |
| 610 | 0 | |a compiler-rt | |
| 610 | 0 | |a compiler-rt в действии | |
| 610 | 0 | |a расширение dragonegg | |
| 610 | 0 | |a сборка dragonegg | |
| 610 | 0 | |a конвейер компиляции | |
| 610 | 0 | |a пакет тестов llvm | |
| 610 | 0 | |a использование lldb | |
| 610 | 0 | |a стандартная библиотека libc++ | |
| 610 | 0 | |a основные принципы организации llvm | |
| 610 | 0 | |a llvm сегодня | |
| 610 | 0 | |a взаимодействие с драйвером компилятора | |
| 610 | 0 | |a использование автономных инструментов | |
| 610 | 0 | |a внутренняя организация llvm | |
| 610 | 0 | |a основные библиотеки llvm | |
| 610 | 0 | |a приемы программирования на c++ в llvm | |
| 610 | 0 | |a эффективные приемы программирования на c++ в llvm | |
| 610 | 0 | |a демонстрация расширяемого интерфейса проходов | |
| 610 | 0 | |a реализация первого собственного проекта llvm | |
| 610 | 0 | |a makefile | |
| 610 | 0 | |a общие советы по навигации в исходных текстах llvm | |
| 610 | 0 | |a читайте код как документацию | |
| 610 | 0 | |a знакомьтесь с обновлениями | |
| 610 | 0 | |a обращайтесь за помощью к сообществу | |
| 610 | 0 | |a введение в clang | |
| 610 | 0 | |a анализатор исходного кода | |
| 610 | 0 | |a работа анализатора исходного кода | |
| 610 | 0 | |a библиотеки | |
| 610 | 0 | |a диагностика в clang | |
| 610 | 0 | |a лексический анализ | |
| 610 | 0 | |a этапы работы анализатора clang | |
| 610 | 0 | |a синтаксический анализ | |
| 610 | 0 | |a семантический анализ | |
| 610 | 0 | |a промежуточное представление llvm | |
| 610 | 0 | |a зависимость llvm ir от целевой архитектуры | |
| 610 | 0 | |a основные инструменты для работы с форматами ir | |
| 610 | 0 | |a введение в синтаксис языка llvm ir | |
| 610 | 0 | |a представление llvm ir в памяти | |
| 610 | 0 | |a реализация собственного генератора llvm ir | |
| 610 | 0 | |a сборка и запуск генератора ir | |
| 610 | 0 | |a к как генерировать любые конструкции ir с использованием генератора кода c++ | |
| 610 | 0 | |a оптимизации времени компиляции и времени компоновки | |
| 610 | 0 | |a оптимизация на уровне ir | |
| 610 | 0 | |a определение проходов | |
| 610 | 0 | |a зависимости между проходами | |
| 610 | 0 | |a прикладной интерфейс проходов | |
| 610 | 0 | |a реализация собственного прохода | |
| 610 | 0 | |a генератор выполняемого кода | |
| 610 | 0 | |a инструменты генераторов кода | |
| 610 | 0 | |a структура генератора кода | |
| 610 | 0 | |a библиотеки генераторов кода | |
| 610 | 0 | |a язык tablegen | |
| 610 | 0 | |a использование файлов .td с генераторами кода | |
| 610 | 0 | |a этап выбора инструкций | |
| 610 | 0 | |a класс selectiondag | |
| 610 | 0 | |a упрощение | |
| 610 | 0 | |a объединение dag и легализация | |
| 610 | 0 | |a выбор инструкций с преобразованием dag-to-dag | |
| 610 | 0 | |a визуализация процесса выбора инструкций | |
| 610 | 0 | |a быстрый выбор инструкций | |
| 610 | 0 | |a маршруты инструкций | |
| 610 | 0 | |a планирование инструкций | |
| 610 | 0 | |a единицы планирования | |
| 610 | 0 | |a машинные инструкции | |
| 610 | 0 | |a определение опасностей | |
| 610 | 0 | |a распределение регистров | |
| 610 | 0 | |a объединение регистров | |
| 610 | 0 | |a замена виртуальных регистров | |
| 610 | 0 | |a архитектурно-зависимые обработчики | |
| 610 | 0 | |a пролог и эпилог | |
| 610 | 0 | |a индексы кадров стека | |
| 610 | 0 | |a инфраструктура машинного кода | |
| 610 | 0 | |a инструкции mc | |
| 610 | 0 | |a эмиссия кода | |
| 610 | 0 | |a реализация собственного прохода для генератора кода | |
| 700 | 1 | |a Бруно |b К. Л. | |
| 701 | 1 | |a Рафаэль |b А. | |
| 801 | 1 | |a RU |b Издательство Лань |c 20250516 |g RCR | |
| 856 | 4 | |u https://e.lanbook.com/book/90119 | |
| 856 | 4 | 1 | |u https://e.lanbook.com/img/cover/book/90119.jpg |
| 953 | |a https://e.lanbook.com/img/cover/book/90119.jpg | ||