Основные концепции компиляторов, Хантер Р., 2002

Подробнее о кнопках "Купить"

По кнопкам "Купить бумажную книгу" или "Купить электронную книгу" можно купить в официальных магазинах эту книгу, если она имеется в продаже, или похожую книгу. Результаты поиска формируются при помощи поисковых систем Яндекс и Google на основании названия и авторов книги.

Наш сайт не занимается продажей книг, этим занимаются вышеуказанные магазины. Мы лишь даем пользователям возможность найти эту или похожие книги в этих магазинах.

Список книг, которые предлагают магазины, можно увидеть перейдя на одну из страниц покупки, для этого надо нажать на одну из этих кнопок.

Основные концепции компиляторов, Хантер Р., 2002.
    
   Эта небольшая, но емкая книга является введением в теорию создания компиляторов. а также кратким описанием принципов их работы. Материал изложен в расчете на читателя, не знакомого с данным предметом. В тексте предлагаются рекомендации по дополнительной литературе и даны подсказки по средствам инструментальной поддержки. Для закрепления материала предлагаются упражнения (с решениями). В завершение книги приводится словарь терминов, используемых в данной области. Книга может быть полезна как студентам, так и преподавателям, читающим соответствующий курс лекций.

Основные концепции компиляторов, Хантер Р., 2002


Задача синтаксического анализа.
До настоящего момента рассматривалось, как можно использовать грамматику для генерации предложений и для определения синтаксиса языка. В процессе компиляции задача синтаксического анализа (или разбора) состоит из нахождения порождения (если оно существует) конкретного предложения, используя данную грамматику. Таким образом, требуется не столько найти предложения, генерируемые грамматикой, сколько, используя грамматику, найти порождение данного предложения или указать, что его не существует. В большинстве случаев искомыми являются левые или правые порождения, которые обычно являются единственными. Если порождение не является единственным (например, для неоднозначных грамматик), должны существовать правила (устранения неоднозначности), которые бы указывали, какое именно из порождений следует использовать. Благодаря этому, результат синтаксического анализа всегда вполне определен.

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

ОГЛАВЛЕНИЕ.
Предисловие.
Благодарности.
Глава 1. Процесс компиляции.
1.1. Вступление.
1.2. Основные понятия.
1.3. Процесс компиляции.
1.4. Этапы, фазы и проходы.
1.5. Интегрированные среды разработки.
1.6 Проектирование компилятора.
1.7. Использование инструментальных средств.
1.8. Резюме.
Дополнительная литература.
Упражнения.
Глава 2. Определение языка.
2.1. Вступление.
2.2. Определяя синтаксис.
2.3. Грамматики.
2.4. Отличия регулярных и контекстно-свободных языков.
2.5. Порождения.
2.6. Неоднозначные грамматики. Ограничения контекстно-свободных грамматик.
2.8. Задача синтаксического анализа.
2.9. Определение семантики.
2.10. Резюме.
Дополнительная литература.
Упражнения.
Глава 3. Лексический анализ.
3.1. Вступление.
3.2. Основные понятия.
3.3. Распознавание символов.
3.4. Lex.
3.5. Другие применения Lex.
3.6. Взаимодействие с YACC.
3.7. Лексические затруднения.
3.8. Резюме.
Дополнительная литература.
Упражнения.
Глава 4. Нисходящий синтаксический анализ.
4.1. Вступление.
4.2. Критерии принятия решений.
4.3. LL(1)-грамматики.
4.4. Рекурсивный спуск.
4.5. Преобразования грамматик.
4.5.1. Удаление левой рекурсии.
4.5.2. Факторизация.
4.6. Достоинства и недостатки LL(1)-анализа.
4.7 Введение действий в грамматику.
4.8. Резюме.
Дополнительная литература.
Упражнения.
Глава 5. Восходящий синтаксический анализ.
5.1. Вступление.
5.2. Основные понятия.
5.3. Использование таблицы синтаксического анализа.
5.4. Создание таблицы синтаксического анализа.
5.5. Особенности LR-анатиза.
5.6. Введение в YACC.
5.7. Вычисление метрик.
5.8. Использование YACC.
5.9. Резюме.
Дополнительная литература.
Упражнения.
Глава 6. Семантический анализ.
6.1. Вступление.
6.2. Не-контскстно-свободные характеристики языка.
6.3. Таблицы компилятора.
6.3.1. Таблицы символов.
6.3.2. Таблицы типов.
6.3.3. Другие таблицы.
6.4. Реализация наследования в C++.
6.5. Резюме.
Дополнительная литература.
Упражнения.
Глава 7. Распределение памяти.
7.1. Вступление.
7.2. Память.
7.3. Статическая и динамическая память.
7.4. Адреса времени компиляции.
7.5. Куча.
7.6. Резюме.
Дополнительная литература.
Упражнения.
Глава 8. Генерация кода.
8.1. Вступление.
8.2. Создание промежуточного кода.
8.2.1. Трехадресный код.
8.2.2. Р-код.
8.2.3. Байт-код.
8.3. Создание машинного кода.
8.3.1. Выбор инструкций.
8.3.2. Распределение регистров.
8.3.3. Распределение регистров путем раскрашивания графа.
8.4. Оптимизация кода.
8.5. Генераторы генераторов кода.
8.6. Резюме.
Дополнительная литература.
Упражнения.
Приложение А. Решения упражнений.
Глава 1.
Глава 2.
Глава 3.
Глава 4.
Глава 5.
Глава 6.
Глава 7.
Глава 8.
Глоссарий.
Литература.
Предметный указатель.



Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Основные концепции компиляторов, Хантер Р., 2002 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги



Скачать - pdf - Яндекс.Диск.
Дата публикации:





Теги: :: :: :: :: ::


 


 

Книги, учебники, обучение по разделам




Не нашёл? Найди:





2025-05-14 06:11:02