Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » В.А. Серебряков, М.П. Галочкин - Основы конструирования компиляторов

В.А. Серебряков, М.П. Галочкин - Основы конструирования компиляторов

PDF-файл В.А. Серебряков, М.П. Галочкин - Основы конструирования компиляторов Формальные языки и автоматы (40239): Книга - 6 семестрВ.А. Серебряков, М.П. Галочкин - Основы конструирования компиляторов: Формальные языки и автоматы - PDF (40239) - СтудИзба2019-05-12СтудИзба

Описание файла

PDF-файл из архива "В.А. Серебряков, М.П. Галочкин - Основы конструирования компиляторов", который расположен в категории "". Всё это находится в предмете "формальные языки и автоматы" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Основы конструирования компиляторовВ.А.Серебряков, М.П.Галочкин2ПредисловиеПредлагаемая вниманию читателя книга основана на курсе лекций,прочитанных на факультете вычислительной математики и кибернетики Московского государственного университета и факультете управления и прикладной математики Московского физико-технического института в 1991-1999 гг. Авторы надеются, что издание книги восполнит существенный пробел в литературе на русском языке по разработкекомпиляторов.Содержание книги представляет собой “классические” разделы предмета: лексический и синтаксический анализ, организация памяти компилятора (таблицы символов) и периода исполнения (магазина), генерация кода.

Рассматриваются некоторые средства автоматизации процесса разработки трансляторов, такие как LEX, YACC, СУПЕР, методы генерации оптимального кода. Сделана попытка на протяжении всего изложения провести единую “атрибутную” точку зрения на процессразработки компилятора. В книге не затрагиваются чрезвычайно важные вопросы глобальной оптимизации и разработки компиляторов длямашин с параллельной архитектурой. Авторы надеются восполнить этипробелы в будущем.Книга будет полезной как студентам и аспирантам программистскихспециальностей, так и профессионалам в этих областях.Авторы с благодарностью примут все конструктивные замечания посодержанию книги.В.А.Серебряков, serebr@ccas.ruМ.П.Галочкин, galoch@ccas.ruОглавление1 Введение1.1 Место компилятора в программномобеспечении . .

. . . . . . . . . . . . . . . . . . . . . . . .1.2 Структура компилятора . . . . . . . . . . . . . . . . . . .2 Языки и их представление2.1 Алфавиты, цепочки и языки . . . . . . . . .2.2 Представление языков . . . . . . . . . . . .2.3 Грамматики . . . . . . . . . . . . . . . . .

.2.3.1 Формальное определение грамматики2.3.2 Типы грамматик и их свойства . . . .........................................7781313151717183 Лексический анализ3.1 Регулярные множества и выражения . . . . . . . . . . . .3.2 Конечные автоматы . . . . . . . . . . . . . . . . .

. . . . .3.3 Алгоритмы построения конечных автоматов . . . . . . . .3.3.1 Построение недетерминированного конечного автомата по регулярному выражению . . . . . . . . . .3.3.2 Построение детерминированного конечногоавтомата по недетерминированному . . . . . . . .

.3.3.3 Построение детерминированного конечногоавтомата по регулярному выражению . . . . . . . .3.3.4 Построение детерминированного конечногоавтомата с минимальным числом состояний . . . .3.4 Регулярные множества и их представления . . . . . .

. .3.5 Программирование лексическогоанализа . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.6 Конструктор лексических анализаторов LEX . . . . . . .212325294 Синтаксический анализ4.1 КС-грамматики и МП-автоматы . . . .4.2 Преобразования КС-грамматик . .

. .4.3 Предсказывающий разбор сверху-вниз4.3.1 Алгоритм разбора сверху-вниз .49495456563............................................29313236384144ОГЛАВЛЕНИЕ44.3.2 Функции F IRST и F OLLOW . . . . . . . . . . . . .4.3.3 Конструирование таблицы предсказывающего анализатора . . . . . .

. . . . . . . . . . . . . . . . . .4.3.4 LL(1)-грамматики . . . . . . . . . . . . . . . . . . .4.3.5 Удаление левой рекурсии . . . . . . . . . . . . . . .4.3.6 Левая факторизация . . . . . . . . . . . . . . . . .4.3.7 Рекурсивный спуск . . . . . . .

. . . . . . . . . . .4.3.8 Восстановление после синтаксических ошибок . . .4.4 Разбор снизу-вверх типа сдвиг-свертка . . . . . . . . . . .4.4.1 Основа . . . . . . . . . . . . . . . . . . . . . . . . .4.4.2 LR(1)-анализаторы . . . . . . . . . . . . . . . . . .4.4.3 Конструирование LR(1)-таблицы . . .

. . . . . . .4.4.4 LR(1)-грамматики . . . . . . . . . . . . . . . . . . .4.4.5 Восстановление после синтаксических ошибок . . .4.4.6 Варианты LR-анализаторов . . . . . . . . . . . . .59616263656667676769737679795 Элементы теории перевода5.1 Преобразователи с магазинной памятью .

. . . . . . . . .5.2 Синтаксически управляемый перевод . . . . . . . . . . .5.2.1 Схемы синтаксически управляемого перевода . . .5.2.2 Обобщенные схемы синтаксически управляемого перевода . . . . . . . . . . . . . . . . . . . . . . . . .5.3 Атрибутные грамматики . . . . . . . .

. . . . . . . . . . .5.3.1 Определение атрибутных грамматик . . . . . . . .5.3.2 Классы атрибутных грамматик и их реализация . .5.3.3 Язык описания атрибутных грамматик . . . . . . .8181828385878792946 Проверка контекстных условий6.1 Описание областей видимости и блочной структуры . . . .6.2 Занесение в среду и поиск объектов . . . . . . . . . . . . .99991017 Организация таблиц символов7.1 Таблицы идентификаторов . .

. . . . .7.2 Таблицы расстановки . . . . . . . . . .7.3 Таблицы расстановки со списками . .7.4 Функции расстановки . . . . . . . . .7.5 Таблицы на деревьях . . . . . . . . . .7.6 Реализация блочной структуры . . . .7.7 Сравнение методов реализации таблиц.................................................1091091111131151161201218 Промежуточное представление программы8.1 Представление в виде ориентированного графа8.2 Трехадресный код . .

. . . . . . . . . . . . . . .8.3 Линеаризованные представления . . . . . . . .8.4 Виртуальная машина Java . . . . . . . . . . . .8.4.1 Организация памяти . . . . . . . . . . ...............................123123124128130131............................ОГЛАВЛЕНИЕ8.4.2 Набор команд виртуальной машины .

. . . . . . . .8.5 Организация информациив генераторе кода . . . . . . . . . . . . . . . . . . . . . . .8.6 Уровень промежуточного представления . . . . . . . . . .51311341349 Генерация кода1359.1 Модель машины . . . . . . . . . . . . . . . . . . . . . . . . 1359.2 Динамическая организация памяти . . . . . . . . .

. . . . 1389.2.1 Организация магазина со статической цепочкой . . 1399.2.2 Организация магазина с дисплеем . . . . . . . . . . 1439.3 Назначение адресов . . . . . . . . . . . . . . . . . . . . . . 1449.4 Трансляция переменных . . . . . . . . .

. . . . . . . . . . 1469.5 Трансляция целых выражений . . . . . . . . . . . . . . . 1489.6 Трансляция арифметических выражений . . . . . . . . . 1499.7 Трансляция логических выражений . . . . . . . . . . . . 1589.8 Выделение общих подвыражений . . . . . . . . . . . . . . 1659.9 Генерация оптимального кода методами синтаксическогоанализа .

. . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.9.1 Сопоставление образцов . . . . . . . . . . . . . . . 1699.9.2 Синтаксический анализ для T-грамматик . . . . . . 1729.9.3 Выбор дерева вывода наименьшей стоимости . . . . 1789.9.4 Атрибутная схема для алгоритма сопоставления образцов . . . . . . . . . . . . . . . . .

. . . . . . . . 18010 Системы автоматизации построения трансляторов18510.1 Система СУПЕР . . . . . . . . . . . . . . . . . . . . . . . . 18510.2 Система Yacc . . . . . . . . . . . . . . . . . . . . . . . . . 1876ОГЛАВЛЕНИЕГлава 1Введение1.1Место компилятора в программномобеспеченииКомпиляторы составляют существенную часть программного обеспечения ЭВМ.

Это связано с тем, что языки высокого уровня стали основнымсредством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования.

Наряду с традиционными языками, такими, как Фортран, широкое распространение получили такназываемые “универсальные” языки (Паскаль, Си, Модула-2, Ада и другие), а также некоторые специализированные (например, язык обработки списочных структур Лисп). Кроме того, большое распространениеполучили языки, связанные с узкими предметными областями, такие,как входные языки пакетов прикладных программ.Для некоторых языков имеется довольно много реализаций.

Например, реализаций Паскаля, Модулы-2 или Си для ЭВМ типа IBM PC нарынке десятки.С другой стороны, постоянно растущая потребность в новых компиляторах связана с бурным развитием архитектур ЭВМ. Это развитие идетпо различным направлениям. Совершенствуются старые архитектурыкак в концептуальном отношении, так и по отдельным, конкретным линиям. Это можно проиллюстрировать на примере микропроцессора Intel80X86. Последовательные версии этого микропроцессора 8086, 80186,80286, 80386, 80486, 80586 отличаются не только техническими характеристиками, но и, что более важно, новыми возможностями и, значит,изменением (расширением) системы команд. Естественно, это требуетновых компиляторов (или модификации старых).

То же можно сказатьо микропроцессорах Motorola 68010, 68020, 68030, 68040.В рамках традиционных последовательных машин возникает боль7ГЛАВА 1. ВВЕДЕНИЕ8шое число различных направлений архитектур. Примерами могут служить архитектуры CISC, RISC. Такие ведущие фирмы, как Intel, Motorola,Sun, начинают переходить на выпуск машин с RISC-архитектурами.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5192
Авторов
на СтудИзбе
433
Средний доход
с одного платного файла
Обучение Подробнее