Характеристики

ISBN/ISSN 978-5-7782-2214-4
Год издания 2013
Автор Малявко А.А.
Вид издания уч.НГТУ
Кафедра ВТ
Типография НГТУ
Факультет АВТФ
670 руб.

Изложены теоретические основы аппарата определения лексики (регулярные выражения) и синтаксиса (формальные грамматики) языков программирования, элементы теории конечных автоматов без памяти и методы ее практического применения для автоматизированного преобразования системы регулярных выражений в конечный автомат – лексический анализатор.
Изучаются нисходящие и восходящие методы синтаксического анализа, основанные на преобразовании формальных грамматик в конечные автоматы с магазинной памятью. Рассматриваются различные способы решения задачи нейтрализации синтаксических ошибок.
Изучаются наиболее типичные задачи, решаемые на этапе семантического анализа: организация памяти программы, доступ к локальным и нелокальным данным, контроль типов.
Обсуждаются основные задачи генератора кода, такие как управление памятью, выбор инструкций, распределение регистров и порядок вычислений; рассматриваются методы оптимизации кода.
Приводится описание учебного программного обеспечения и методические указания по выполнению лабораторных работ и курсового проектирования.
Учебник рекомендуется студентам старших курсов и аспирантам, а также преподавателям смежных дисциплин, а также студентам и аспирантам ряда других технических специальностей, связанных с разработкой и использованием программного обеспечения.

Изложены теоретические основы аппарата определения лексики (регулярные выражения) и синтаксиса (формальные грамматики) языков программирования, элементы теории конечных автоматов без памяти и методы ее практического применения для автоматизированного преобразования системы регулярных выражений в конечный автомат – лексический анализатор.
Изучаются нисходящие и восходящие методы синтаксического анализа, основанные на преобразовании формальных грамматик в конечные автоматы с магазинной памятью. Рассматриваются различные способы решения задачи нейтрализации синтаксических ошибок.
Изучаются наиболее типичные задачи, решаемые на этапе семантического анализа: организация памяти программы, доступ к локальным и нелокальным данным, контроль типов.
Обсуждаются основные задачи генератора кода, такие как управление памятью, выбор инструкций, распределение регистров и порядок вычислений; рассматриваются методы оптимизации кода.
Приводится описание учебного программного обеспечения и методические указания по выполнению лабораторных работ и курсового проектирования.
Учебник рекомендуется студентам старших курсов и аспирантам, а также преподавателям смежных дисциплин, а также студентам и аспирантам ряда других технических специальностей, связанных с разработкой и использованием программного обеспечения.



ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ    7
ВВЕДЕНИЕ    9
Трансляторы: компиляторы и интерпретаторы    9
Этапы процесса трансляции    12
Проектирование трансляторов    16
Глава 1. ВВЕДЕНИЕ В ТЕОРИЮ ФОРМАЛЬНЫХ ЯЗЫКОВ    19
1.1. Элементарные понятия    19
1.2. Регулярные выражения    23
1.3. Формальные грамматики    26
1.4. Конечные автоматы    60
Вопросы и упражнения к главе 1    76
Глава 2. ЛЕКСИЧЕСКИЙ АНАЛИЗ    79
2.1. Постановка задачи    79
2.2. Способы реализации лексического акцептора    83
2.3. Процедурная реализация лексического акцептора    84
2.4. Автоматная модель лексического акцептора    100
Вопросы и упражнения к главе 2    131
Глава 3. СИНТАКСИЧЕСКИЙ АНАЛИЗ    133
3.1. Введение в синтаксический анализ    133
3.2. Нисходящие методы синтаксического акцепта    137
3.3. Восходящие методы синтаксического акцепта    176
3.4. Синтаксический анализ    219
Вопросы и упражнения к главе 3    251
Глава 4. СЕМАНТИЧЕСКИЙ АНАЛИЗ    253
4.1. Введение в семантический анализ    253
4.2. Программы и данные    260
4.3. Адреса и значения    266
4.4. Базовые типы данных    268
4.5. Производные типы данных    272
4.6. Контроль типов данных объектов программы    274
4.7. Эквивалентность типов данных    277
4.8. Ассоциации наименований объектов    283
4.9. Среды ссылок периода исполнения    295
4.10. Локальные данные процедур    306
4.11. Вызывающие последовательности    310
4.12. Доступ к нелокальным объектам    313
4.13. Передача аргументов    329
4.14. Функции контроля структуры транслируемой программы    336
4.15. Семантический анализ: краткое заключение    337
Вопросы и упражнения к главе 4    338
Глава 5. ГЕНЕРАЦИЯ И ОПТИМИЗАЦИЯ КОДА    341
5.1. Базовые блоки и графы потоков    343
5.2. Объектный код    349
5.3. Оптимизация программы    356
5.4. Два примера результатов генерации и оптимизации кода    365
Вопросы и упражнения к главе 5    376
Глава 6. ЛАБОРАТОРНЫЙ ПРАКТИКУМ  И КУРСОВОЕ ПРОЕКТИРОВАНИЕ    377
6.1. Учебное программное обеспечение. Состав и структура учебного ПО    377
6.2. Лабораторный практикум    408
6.3. Курсовое проектирование    416
БИБЛИОГРАФИЧЕСКИЙ СПИСОК    430

Данные подготавливаются.

Вернуться к списку