Опубликован: 06.08.2007 | Уровень: профессионал | Доступ: платный
В курсе излагаются основные разделы
теории разработки компиляторов. Рассматриваются такие
средства автоматизации процесса разработки трансляторов, как LEX, YACC, СУПЕР, методы генерации оптимального кода.
Сделана попытка на протяжении всего изложения провести единую "атрибутную" точку зрения на процесс разработки компилятора.
Цель: Для студентов, аспирантов программистских
специальностей и профессионалов - программистов и
разработчиков компиляторов.
Дополнительные курсы |
План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 13 минуты | ПредисловиеОглавление | - |
Лекция 214 минут | Введение
В данной лекции рассматривается место компилятора в программном обеспечении, который составляет существенную часть программного обеспечения ЭВМ. Приведены основные понятия, рассмотрена структура компилятора согласно фазам его действия.
Оглавление | - |
Тест 136 минут | - | |
Лекция 32 часа 18 минут | Языки и их представление
В данной лекции рассматривается понятие языков и их представление. Приведены такие определения, как алфавит, цепочка, грамматика, машина Тьюринга. Также приведены примеры практической реализации основных понятий в теории программирования.
Оглавление | - |
Тест 236 минут | - | |
Лекция 41 час 49 минут | Лексический анализ
В данной лекции приводится понятие лексического анализа. Рассмотрены основные задачи лексического анализа, приведены основные определения, такие как регулярное множество, конечный автомат, конфигурация, лексический анализатор. Также приведены примеры решения задач, связанных с лексическим анализом.
Оглавление | - |
Тест 336 минут | - | |
Лекция 53 часа 15 минут | Синтаксический анализ
В данной лекции рассматривается понятие синтаксического анализа. Приводятся определения понятий упорядоченного графа, дерева вывода, автомата с магазинной памятью и его конфигурации. Приведены примеры задач, алгоритмов и доказательства теорем синтаксического анализа.
Оглавление | - |
Тест 436 минут | - | |
Лекция 659 минут | Элементы теории перевода
В данной лекции рассматривается теория перевода. Рассматриваются несколько формализмов для определения переводов: преобразователи с магазинной памятью, схемы синтаксически управляемого перевода и атрибутные грамматики. Приведены основные понятия, примеры решения задач и доказательства теорем.
Оглавление | - |
Тест 536 минут | - | |
Лекция 722 минуты | Проверка контекстных условий
В данной лекции рассматривается проверка контекстных условий. Приведены определения понятий компоненты программы, области действия и области видимости, основных действий со средой. Также приведены примеры программного кода и решения задач.
Оглавление | - |
Тест 636 минут | - | |
Лекция 834 минуты | Организация таблиц символов
В данной лекции рассматривается организация таблиц символов. Рассмaтриваются некоторые основные способы организации таблиц символов в компиляторе: таблицы идентификаторов, таблицы расстановки, двоичные деревья и реализация блочной структуры. Приведены также примеры программного кода и графическая интерпретация таблиц символов и идентификаторов.
Оглавление | - |
Тест 736 минут | - | |
Лекция 937 минут | Промежуточное представление программы
В данной лекции рассматривается промежуточное представление программы, которое предназначено прежде всего для удобства генерации кода и/или проведения различных оптимизаций. Рассматриваются часто используемые формы промежуточного представления такие, как ориентированный граф (в частности, абстрактное синтаксическое дерево, в том числе атрибутированное), трехадресный код (в виде троек или четверок), префиксная и постфиксная запись. Также рассмотрена виртуальная Java-машина и ее команды. Приведены основные понятия, графическая интерпретация промежуточного представления программ и части программного кода.
Оглавление | - |
Тест 836 минут | - | |
Лекция 102 часа 24 минуты | Генерация кода
В данной лекции рассматривается генерация кода, задачей которой является построение для программы на входном языке эквивалентной машинной программы. Рассматривается действие модели машины, осуществляющей генерацию кода. Приведены основные понятия и части программного кода.
Оглавление | - |
Тест 936 минут | - | |
Лекция 1115 минут | Системы автоматизации построения трансляторов
В данной лекции рассматриваются системы автоматизации построения трансляторов на примере систем автоматизации построения трансляторов СУПЕР и YACC. Приведены структуры этих систем, основные термины и определения и части программного кода реализации систем автоматизации построения трансляторов.
Оглавление | - |
Тест 1036 минут | - | |
Дополнительный материал 11 час 46 минут | Семантика контекстно-свободных языковОглавление | - |
Дополнительный материал 21 час 5 минут | Атрибутные грамматикиОглавление | - |
Дополнительный материал 31 час 11 минут | Задачи по разделам курсаОглавление | - |
5 часов | - |