Россия |
Разработка компиляторов
:Разработка компиляторов
: Информация
Опубликован: 23.07.2006 | Уровень: специалист | Доступ: платный

План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 149 минут | Введение и обзор платформы .NET
В введении рассматриваются цели и задачи данного курса, его структура и рамки,
а также говорится об необходимых предварительных знаниях, которые потребуются для
полноценного понимания курса. В первой лекции обсуждаются следующие вопросы: общая
идея архитектуры .NET; достоинства и недостатки .NET; схема трансляции программ в .NET;
основные черты промежуточного представления, используемого в .NET (MSIL); безопасность в .NET;
объектная модель .NET; понятие сборки, манифест сборки; модель безопасности в .NET;
единая система типов данных.
Оглавление | - |
Тест 136 минут | - | |
Лекция 259 минут | Обзор языка C#
Основные идеи создания C#. Базовые конструкции языка. Препроцессор C#.
Системные и пользовательские атрибуты. Опасный код в C#. Описание языка C-бемоль,
являющегося подмножеством C#.
Оглавление | - |
Тест 236 минут | - | |
Лекция 349 минут | Основы компиляторов
Основные понятия. Компиляторы и интерпретаторы. Входной язык, целевой
язык, язык реализации. T-диаграммы. Прямой компилятор. Раскрутка. Кросс-трансляторы.
Виртуальные машины. Компиляция "на лету".
Оглавление | - |
Тест 336 минут | - | |
Лекция 41 час 16 минут | Теория языков
Различные способы задания языков в компиляции: грамматики; конечные и
магазинные автоматы. Соотношения между различными способами задания языков.
Приложения в компиляции.
Оглавление | - |
Тест 436 минут | - | |
Лекция 545 минут | Лексический анализ
Основные задачи лексического анализа. Регулярные выражения.
Использование конечных автоматов для лексического анализа. Утилита Lex.
Использование механизма регулярных выражений .NET
Оглавление | - |
Тест 536 минут | - | |
Лекция 643 минуты | Синтаксические анализаторы. Нисходящие анализаторы
Синтаксический анализ. Контекстно-свободные грамматики.
Нисходящие анализаторы. Метод рекурсивного спуска.
Оглавление | - |
Тест 636 минут | - | |
Лекция 753 минуты | Восходящие анализаторы
Восходящие анализаторы. LR (k)-анализаторы. Построение
LR (0)-анализатора. LR (1)-анализатор. LALR-анализаторы. Неоднозначные грамматики.
Различные типы конфликтов. Разрешение конфликтов.
Оглавление | - |
Тест 736 минут | - | |
Лекция 844 минуты | Грамматики и YACC
Генератор анализаторов YACC
Оглавление | - |
Тест 836 минут | - | |
Лекция 947 минут | Семантический анализ. Внутреннее представление
Фаза контроля типов. Идентификация. Работа с таблицами. Идентификация.
Работа с типами. Причины использования промежуточных языков в компиляторах.
Различные формы промежуточных языков (ПЯ) в компиляторах:атрибутные деревья разбора;
прямая и обратная польские записи; триады/тетрады; RTL.
Оглавление | - |
Тест 936 минут | - | |
Лекция 101 час 4 минуты | Управление памятью и сборка мусора
Управление памятью с точки зрения разработчика компилятора. Проблемы
управления памятью. Статическое и динамическое размещение памяти. Стековый механизм
управления памятью. Управление кучей. Подсчет ссылок и разметка памяти. Управление
памятью в .NET.
Оглавление | - |
Тест 1036 минут | - | |
Лекция 1141 минута | Оптимизация
Задачи оптимизации. Виды оптимизирующих преобразований. Представления
программы, используемые в оптимизирующих преобразованиях. Примеры оптимизирующих
преобразований.
Оглавление | - |
Тест 1136 минут | - | |
Лекция 1242 минуты | Анализ потока управления
Задачи анализа потока управления. Граф потока управления. Доминирование.
Глубинное остовное дерево. Основные виды фрагментов графа потока управления и их
свойства.
Оглавление | - |
Тест 1236 минут | - | |
Лекция 1336 минут | Анализ потоков данных
Определение анализа потоков данных. Достижимые определения и живые
переменные. Формализация задач анализа потоков данных. Итеративный алгоритм для
решения задач анализа потоков данных.
Оглавление | - |
Тест 1336 минут | - | |
Лекция 1452 минуты | Генерация MSIL
Основные свойства MSIL. Пример генерации MSIL по программе на Cи-бемоль.
Механизм рефлексии в .NET (на примере). Процесс генерации MSIL.
Оглавление | - |
Тест 1436 минут | - | |
Лекция 1557 минут | Выбор инструкций при генерации кода
Постановка задачи выбора оптимальных инструкций. Деревянные языки.
Деревянные грамматики. BURS и ее приложения.
Оглавление | - |
Тест 1536 минут | - | |
Дополнительный материал6 минут | Приложение. Описание языка C
Конструкции и грамматика языка С-бемоль
Оглавление | - |
5 часов | - |