Информатика и вычислительная техника
  • формат pdf
  • размер 1.97 МБ
  • добавлен 28 января 2012 г.
Серебряков В.А., Галочкин М.П. и др. Теория и реализация языков программирования
Москва: МЗ Пресс, 2006. - 352 с
Серебряков В.А., Галочкин М.П., Гончар Д.Р., Фуругян М.Г.
Предлагаемая вниманию читателя книга основана на курсе лекций, прочитанных на факультете вычислительной математики и кибернетики МГУ им. М.В. Ломоносова и на факультете управления и прикладной математики Московского физико-технического института в 1991-2002 гг. Авторы надеются, что издание книги восполнит существенный пробел в литературе на русском языке по разработке компиляторов. В книге представлены «классические» разделы теории разработки компиляторов: лексический и синтаксический анализ, организация памяти компилятора (таблицы символов) и периода исполнения (магазина), генерация кода. Рассматриваются такие средства автоматизации процесса разработки трансляторов, как LEX, YACC, СУПЕР, методы генерации оптимального кода. Сделана попытка на протяжении всего изложения провести единую «атрибутную» точку зрения на процесс разработки компилятора. В книге не затрагиваются чрезвычайно важные вопросы глобальной оптимизации и разработки компиляторов для машин с параллельной архитектурой. Авторы надеются восполнить эти пробелы в будущем.
Книга рассчитана как на студентов и аспирантов программистских специальностей, так и на профессионалов в области программирования.
Содержание
Введение 9
Место компилятора в программном обеспечении
Структура компилятора
Языки и их представление
Алфавиты, цепочки и языки
Представление языков
Грамматики
Формальное определение грамматики
Типы грамматик и их свойства
Машины Тьюринга
Неразрешимость проблемы останова
Класс рекурсивных множеств
Связь машин Тьюринга и грамматик типа 0
Линейно-ограниченные автоматы и их связь с контекстно-зависимыми грамматиками
Лексический анализ
Регулярные множества и выражения
Конечные автоматы
Алгоритмы построения конечных автоматов
Построение недетерминированного конечного автомата по регулярному выражению
Построение детерминированного конечного автомата по недетерминированному
Построение детерминированного конечного автомата по регулярному выражению
Построение детерминированного конечного автомата с минимальным числом состояний
Связь регулярных множеств, конечных автоматов и регулярных грамматик
Программирование лексического анализа
Конструктор лексических анализаторов LEX
Синтаксический анализ
Контекстно-свободные грамматики и автоматы с магазинной памятью
Преобразования КС-грамматик
Алгоритм Кока-Янгера-Касами
Предсказывающий разбор сверху-вниз
Алгоритм разбора сверху-вниз
Функции FIRST и FOLLOW
Конструирование таблицы предсказывающего анализатора
LL(1)-грамматики
LL(k)-грамматики
Следствия определения LL(k)-грамматики
Удаление левой рекурсии
Левая факторизация
Рекурсивный спуск
Восстановление процесса анализа после синтаксических ошибок
Разбор снизу-вверх типа сдвиг-свёртка
Основа
LR(1)-aнaлизaтopы
Конструирование LR(1)-таблицы
LR(1)-грамматики
Восстановление процесса анализа после синтаксических ошибок
Варианты LR-анализаторов
Элементы теории перевода
Преобразователи с магазинной памятью
Синтаксически управляемый перевод
Схемы синтаксически управляемого перевода
Обобщённые схемы синтаксически управляемого перевода
Атрибутные грамматики
Определение атрибутных грамматик
Классы атрибутных грамматик и их реализация
Язык описания атрибутных грамматик
Проверка контекстных условий
Описание областей видимости и блочной структуры
Занесение в среду и поиск объектов
Организация таблиц символов
Таблицы идентификаторов
Таблицы расстановки
Таблицы расстановки со списками
Функции расстановки
Таблицы на деревьях
Реализация блочной структуры
Сравнение методов реализации таблиц
Промежуточное представление программы
Представление в виде ориентированного графа
Трёхадресный код
Линеаризованные представления
Виртуальная машина Java
Организация памяти
Набор команд виртуальной машины
Организация информации в генераторе кода
Уровень промежуточного представления .
Генерация кода
Модель машины
Динамическая организация памяти
Организация магазина со статической цепочкой
Организация магазина с дисплеем
Назначение адресов
Трансляция переменных
Трансляция целых выражений
Трансляция арифметических выражений
Трансляция логических выражений
Выделение общих подвыражений
Трансляция объектно-ориентированных свойств языков программирования
Виртуальные базовые классы
Множественное наследование
Единичное наследование и виртуальные функции
Множественное наследование и виртуальные функции
Виртуальные базовые классы с виртуальными функциями
Генерация оптимального кода методами синтаксического анализа
Сопоставление образцов
Синтаксический анализ для Т-грамматик
Выбор дерева вывода наименьшей стоимости
Атрибутная схема для алгоритма сопоставления образцов
Системы автоматизации построения трансляторов
Система СУПЕР
Система YACC
Семантика контекстно-свободных языков
Формальные свойства
Проверка на зацикленность
Простой язык программирования
Атрибутные грамматики
Определение атрибутных грамматик
Атрибутированное дерево разбора
Незацикленные атрибутные грамматики
Вычислительные последовательности и корректность. Определение визита
Чистые многовизитные грамматики
Абсолютно незацикленные атрибутные грамматики
Простые многовизитные атрибутные грамматики
Одновизитные атрибутные грамматики
Многопроходные грамматики
Задачи по разделам книги
Языки и их представление
Алфавиты, цепочки и языки
Представление языков
Грамматики
Лексический анализ
Регулярные множества и выражения
Конечные автоматы
Алгоритмы построения конечных автоматов
Регулярные множества и их представления
Алгебраические свойства регулярных множеств. Лемма о разрастании
Синтаксический анализ
КС-грамматики и МП-автоматы
Алгебраические свойства КС-языков.
Лемма о разрастании
Преобразования КС-грамматик
Предсказывающий разбор сверху-вниз
Разбор снизу-вверх типа сдвиг-свертка
Элементы теории перевода
Атрибутные грамматики
Генерация кода
Трансляция арифметических выражений
Трансляция логических выражений
Генерация оптимального кода методами синтаксического анализа
Литература
Похожие разделы
Смотрите также

Алёшин А.В. Теория языков программирования и методы трансляции

  • формат doc
  • размер 1.06 МБ
  • добавлен 24 июня 2010 г.
Алёшин Александр Владимирович Теория языков программирования и методы трансляции Конспект лекций для студентов очной формы обучения специальности 220400 – Программное обеспечение вычислительной техники и автоматизированных систем Содержание: Теория языков и формальных грамматик Способы определения языков Формальные грамматики Грамматики с ограничениями на правила Способы записи синтаксиса языка распознаватели Метаязык Хомского Ме...

Алёшин А.В. Теория языков программирования и методы трансляции. Практикум

  • формат doc
  • размер 179 КБ
  • добавлен 24 июня 2010 г.
Теория языков программирования и методы трансляции. Методические указания и варианты заданий для выполнения практических занятий для студентов очной формы обучения специальности 220400 – Программное обеспечение ВТ и АС / Сост. Алёшин А. В. – Краснодар: ИМСИТ, 2005. – 19 с. Содержание: Практическая работа лексический анализ Цель и порядок выполнения работы Теоретические сведения Задание на практическую работу Контрольные вопросы Практиче...

Креншоу Д. Пишем компилятор

  • формат doc
  • размер 1.57 МБ
  • добавлен 17 декабря 2008 г.
Лекции по построению компилятора на Pascal. 255 с. Эта серия статей является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. Прежде чем вы закончите чтение этой книги, мы раскроем все аспекты конструирования компиляторов, создадим новый язык программирования, и построим работающий компилятор.

Креншоу Д. Пишем компилятор

  • формат pdf
  • размер 1.25 МБ
  • добавлен 16 мая 2009 г.
Эта серия статей является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. Прежде чем вы закончите чтение этой книги, мы раскроем все аспекты конструирования компиляторов, создадим новый язык программирования, и построим работающий компилятор.

Левенталь Л. Программирование на языке ассемблера для микропроцессоров 8080 и 8085

  • формат djvu
  • размер 3.71 МБ
  • добавлен 06 февраля 2009 г.
1987 г. Общие методы программирования. Реализация дополнительных команд и способов адресации. Распостранненные ошибки программирования. Преобразование кодов. Работа с массивами.Индексирование. Арифметические операции. Работа с разрядами и сдвиги. Работа со строками. Операции с массивами. Ввод-вывод. Прерывания.

Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции

  • формат djvu
  • размер 1.83 МБ
  • добавлен 26 января 2012 г.
СПб.: БХВ-Петербург, 2005. - 480 с. Учебное пособие содержит систематическое изложение теоретических основ перевода и компиляции. Рассмотрены общие вопросы разработки, описания и реализации языков программирования, формальные методы описания синтаксиса и семантики языков программирования, методы синтаксического анализа современных языков программирования. Приводится методика разработки описания перевода и пример использования этой методики для...

Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции

  • формат pdf
  • размер 11.75 МБ
  • добавлен 25 января 2012 г.
СПб.: БХВ-Петербург,2003. – 471 с. ISBN: 5-94157-327-8 Учебное пособие содержит систематическое изложение теоретических основ перевода и компиляции. Рассмотрены общие вопросы разработки, описания и реализации языков программирования, формальные методы описания синтаксиса и семантики языков программирования, методы синтаксического анализа современных языков программирования. Приводится методика разработки описания перевода и пример использования э...

Свердлов С.З. Введение в методы трансляции: Учебное пособие

  • формат pdf
  • размер 536 КБ
  • добавлен 04 января 2010 г.
Свердлов С. З. Введение в методы трансляции: Учебное пособие. - Вологда: Издательство "Русь" В пособии рассматриваются алгоритмы, используемые при построении компиляторов и интерпретаторов языков программирования. Показаны возможности применения этих алгоритмов при разработке прикладных программ. Изложение ведется с использованием языка программирования Паскаль и сопровождается большим количеством примеров. Пособие предназначено для студентов, сп...

Свердлов С.З. Языки программирования и методы трансляции

  • формат djvu
  • размер 10.56 МБ
  • добавлен 14 февраля 2011 г.
Учебное пособие. В первой части дан обзор языков программирования высокого уровня. Также рассматриваются методы разработки компиляторов. Особое внимание уделяется языку Оберон. Качество: хорошее. Формат: djvu. Год: 2007.

Хантер Р. Проектирование и конструирование компиляторов

  • формат pdf
  • размер 2.16 МБ
  • добавлен 19 сентября 2009 г.
В книге известного английского автора рассматриваются проблемы проектирования и построения компиляторов для языков программирования высокого уровня, в частности Алгола 60, ПЛ/1, Алгола 68, Паскаля и Ады. Основное внимание уделяется целям проектирования надежных компиляторов и средствам их достижения. Практические вопросы разъясняются посредством упражнений. Для математиков, разработчиков программного обеспечения ЭВМ и АСУ, специалистов по алгори...