Компьютерные науки

Теория и реализация языков программирования

Программа излагает основные разделы теории разработки трансляторов. Рассматриваются средства автоматизации построения компиляторов и методы генерации оптимального кода.
Студентов 2338 Выпускников 1088 Для профессионалов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа детально описывает все этапы создания компилятора: от лексического анализа до проверки контекстных условий и генерации финального кода. Особое внимание уделено атрибутным грамматикам и семантике контекстно-свободных языков. Изучение выстроено вокруг единого атрибутного подхода к разработке. Последовательно разбираются синтаксический анализ, таблицы символов и промежуточное представление. Учебная программа предназначена для разработчиков системного программного обеспечения, интересующихся внутренним устройством трансляторов.
Цели
  • Сформировать понимание архитектуры компиляторов.
  • Дать практические ориентиры по организации лексического и синтаксического анализа.
  • Раскрыть механизмы генерации машинного кода.
Чему я научусь?
  • Применять средства автоматизации построения трансляторов.
  • Организовывать таблицы символов.
  • Проверять контекстные условия программ.

Авторы

Галочкин Максим Павлович
Галочкин Максим Павлович
Выпукник кафедры алгоритмических языков факультета Вычислительной Математики и Кибернетики Московского Государственного Университета им. М.В.Ломоносова.
Гончар Дмитрий Русланович
Гончар Дмитрий Русланович
Серебряков Владимир Алексеевич
Серебряков Владимир Алексеевич
Доктор физико-математических наук, профессор кафедры системного программирования факультета вычислительной математики и кибернетики.
Фуругян Меран Габибуллаевич
Фуругян Меран Габибуллаевич
Кандидат физико-математических наук, заведующий сектором ВЦ РАН, доцент МФТИ, доцент МГУ.\n
Чему я научусь?
  • Применять средства автоматизации построения трансляторов.
  • Организовывать таблицы символов.
  • Проверять контекстные условия программ.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Предисловие
2 Введение В данной лекции рассматривается место компилятора в программном обеспечении, который составляет существенную часть программного обеспечения ЭВМ.... В данной лекции рассматривается место компилятора в программном обеспечении, который составляет существенную часть программного обеспечения ЭВМ. Приведены основные понятия, рассмотрена структура компилятора согласно фазам его действия. ещё
Введение тест для курса Теория и реализация языков программирования 60 мин
3 Языки и их представление В данной лекции рассматривается понятие языков и их представление. Приведены такие определения, как алфавит, цепочка, грамматика,... В данной лекции рассматривается понятие языков и их представление. Приведены такие определения, как алфавит, цепочка, грамматика, машина Тьюринга. Также приведены примеры практической реализации основных понятий в теории программирования. ещё
Языки и их представление тест для курса Теория и реализация языков программирования 60 мин
4 Лексический анализ В данной лекции приводится понятие лексического анализа. Рассмотрены основные задачи лексического анализа, приведены основные определения, такие... В данной лекции приводится понятие лексического анализа. Рассмотрены основные задачи лексического анализа, приведены основные определения, такие как регулярное множество, конечный автомат, конфигурация, лексический анализатор. Также приведены примеры решения задач, связанных с лексическим анализом. ещё
Лексический анализ тест для курса Теория и реализация языков программирования 60 мин
5 Синтаксический анализ В данной лекции рассматривается понятие синтаксического анализа. Приводятся определения понятий упорядоченного графа, дерева вывода, автомата с... В данной лекции рассматривается понятие синтаксического анализа. Приводятся определения понятий упорядоченного графа, дерева вывода, автомата с магазинной памятью и его конфигурации. Приведены примеры задач, алгоритмов и доказательства теорем синтаксического анализа. ещё
Синтаксический анализ тест для курса Теория и реализация языков программирования 60 мин
6 Элементы теории перевода В данной лекции рассматривается теория перевода. Рассматриваются несколько формализмов для определения переводов: преобразователи с магазинной памятью,... В данной лекции рассматривается теория перевода. Рассматриваются несколько формализмов для определения переводов: преобразователи с магазинной памятью, схемы синтаксически управляемого перевода и атрибутные грамматики. Приведены основные понятия, примеры решения задач и доказательства теорем. ещё
Элементы теории перевода тест для курса Теория и реализация языков программирования 60 мин
7 Проверка контекстных условий В данной лекции рассматривается проверка контекстных условий. Приведены определения понятий компоненты программы, области действия и области... В данной лекции рассматривается проверка контекстных условий. Приведены определения понятий компоненты программы, области действия и области видимости, основных действий со средой. Также приведены примеры программного кода и решения задач. ещё
Проверка контекстных условий тест для курса Теория и реализация языков программирования 60 мин
8 Организация таблиц символов В данной лекции рассматривается организация таблиц символов. Рассмaтриваются некоторые основные способы организации таблиц символов в компиляторе:... В данной лекции рассматривается организация таблиц символов. Рассмaтриваются некоторые основные способы организации таблиц символов в компиляторе: таблицы идентификаторов, таблицы расстановки, двоичные деревья и реализация блочной структуры. Приведены также примеры программного кода и графическая интерпретация таблиц символов и идентификаторов. ещё
Организация таблиц символов тест для курса Теория и реализация языков программирования 60 мин
9 Промежуточное представление программы В данной лекции рассматривается промежуточное представление программы, которое предназначено прежде всего для удобства генерации кода и/или... В данной лекции рассматривается промежуточное представление программы, которое предназначено прежде всего для удобства генерации кода и/или проведения различных оптимизаций. Рассматриваются часто используемые формы промежуточного представления такие, как ориентированный граф (в частности, абстрактное синтаксическое дерево, в том числе атрибутированное), трехадресный код (в виде троек или четверок), префиксная и постфиксная запись. Также рассмотрена виртуальная Java-машина и ее команды. Приведены основные понятия, графическая интерпретация промежуточного представления программ и части программного кода. ещё
Промежуточное представление программы тест для курса Теория и реализация языков программирования 60 мин
10 Генерация кода В данной лекции рассматривается генерация кода, задачей которой является построение для программы на входном языке эквивалентной... В данной лекции рассматривается генерация кода, задачей которой является построение для программы на входном языке эквивалентной машинной программы. Рассматривается действие модели машины, осуществляющей генерацию кода. Приведены основные понятия и части программного кода. ещё
Генерация кода тест для курса Теория и реализация языков программирования 60 мин
11 Системы автоматизации построения трансляторов В данной лекции рассматриваются системы автоматизации построения трансляторов на примере систем автоматизации построения трансляторов СУПЕР и... В данной лекции рассматриваются системы автоматизации построения трансляторов на примере систем автоматизации построения трансляторов СУПЕР и YACC. Приведены структуры этих систем, основные термины и определения и части программного кода реализации систем автоматизации построения трансляторов. ещё
Системы автоматизации построения трансляторов тест для курса Теория и реализация языков программирования 60 мин
12 Семантика контекстно-свободных языков
13 Атрибутные грамматики
14 Задачи по разделам курса
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

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

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.