Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
21:43:00
Студентов:
1394
Выпускников:
197
Качество курса:
4.28 | 4.17
В данном курсе рассматриваются теоретические основы и практические методы создания компиляторов языков программирования. Изложение ведется на основе языка программирования C# и платформы .NET.
Специальности: Системный архитектор
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
49 минут
Введение и обзор платформы .NET
В введении рассматриваются цели и задачи данного курса, его структура и рамки, а также говорится об необходимых предварительных знаниях, которые потребуются для полноценного понимания курса. В первой лекции обсуждаются следующие вопросы: общая идея архитектуры .NET; достоинства и недостатки .NET; схема трансляции программ в .NET; основные черты промежуточного представления, используемого в .NET (MSIL); безопасность в .NET; объектная модель .NET; понятие сборки, манифест сборки; модель безопасности в .NET; единая система типов данных.
-
Лекция 4
1 час 16 минут
Теория языков
Различные способы задания языков в компиляции: грамматики; конечные и магазинные автоматы. Соотношения между различными способами задания языков. Приложения в компиляции.
-
Лекция 7
53 минуты
Восходящие анализаторы
Восходящие анализаторы. LR (k)-анализаторы. Построение LR (0)-анализатора. LR (1)-анализатор. LALR-анализаторы. Неоднозначные грамматики. Различные типы конфликтов. Разрешение конфликтов.
-
Лекция 9
47 минут
Семантический анализ. Внутреннее представление
Фаза контроля типов. Идентификация. Работа с таблицами. Идентификация. Работа с типами. Причины использования промежуточных языков в компиляторах. Различные формы промежуточных языков (ПЯ) в компиляторах:атрибутные деревья разбора; прямая и обратная польские записи; триады/тетрады; RTL.
-
Лекция 10
1 час 4 минуты
Управление памятью и сборка мусора
Управление памятью с точки зрения разработчика компилятора. Проблемы управления памятью. Статическое и динамическое размещение памяти. Стековый механизм управления памятью. Управление кучей. Подсчет ссылок и разметка памяти. Управление памятью в .NET.
-
Лекция 13
36 минут
Анализ потоков данных
Определение анализа потоков данных. Достижимые определения и живые переменные. Формализация задач анализа потоков данных. Итеративный алгоритм для решения задач анализа потоков данных.
-
Лекция 15
57 минут
Выбор инструкций при генерации кода
Постановка задачи выбора оптимальных инструкций. Деревянные языки. Деревянные грамматики. BURS и ее приложения.
-
1 час 40 минут
-
Артем Хмелев
Артем Хмелев
Россия, 5
Анатолий Гречман
Анатолий Гречман
Казахстан, Экибастуз, Экибастузский Инженерно-технический Институт, 2014