Skip to content

Latest commit

 

History

History
86 lines (55 loc) · 7.92 KB

courses_ru.md

File metadata and controls

86 lines (55 loc) · 7.92 KB

Учебные курсы по конструированию компиляторов (на русском языке)

"Основы методов трансляции" и "Методы оптимизирующей компиляции"

Курсы от сотрудников заслуженной, но ныне не существующей "компиляторной" компании "Эксельсиор" (НГУ).

На сайте компании материалы уже недоступны, но до них все еще можно добраться по прямым ссылкам. Есть только тексты рабочих программ и слайды лекций.

Программа курса "основы методов трансляции"

Программа курса "Методы оптимизирующей компиляции"

Особый интерес представляет курс "Методы оптимизирующей компиляции", где освещаются такие вопросы, как статический потоковый анализ и форма SSA (в том числе распределение регистров на уровне формы SSA).

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

Курс С.З. Свердлова (Вологодский государственный университет).

Доступны видеозаписи лекций на youtube.

Речь идет о разработке компилятора подмножества языка Оберон. Может использоваться в качестве дополнения к одноименному учебнику того же автора. При этом, в отличие от учебника, языком реализации в видеокурсе является Питон. Одна из версий разрабатываемого в рамках видеокурса компилятора доступна здесь: https://github.com/c3c-git/O-Python

"Теория компиляторов"

Курс В.Э. Карпова (МИЭМ).

Доступны конспекты лекций, слайды и методические указания.

http://rema44.ru/resurs/students/karpov/

Конспект лекций "Теория компиляторов" из первой части курса имеет достаточно традиционное "драконовское" содержание. Совсем иное дело -- вторая часть курса (см. "методические материалы по выполнению курсовой работы"). Это введение в методы компиляции для машин с параллелизмом уровня команд (VLIW). Автор использует, в том числе, советский опыт в этой области ("ярусно-параллельная форма"). Кроме того, для задач компиляции автором уместно, хотя и в очень скромном объеме, используется язык Пролог.

"Языки программирования и компиляторы"

Курс Д.Ю. Булычева (СПбГУ, JetBrains Research).

https://compscicenter.ru/courses/compilers/2018-spring/

Доступны видеозаписи лекций на youtube и конспекты.

Это современный курс с уклоном в формальную семантику и функциональное программирование. Вопросы оптимизации кода, по большому счету, не рассматриваются. В качестве языка реализации компиляторов выбран Ocaml. Изложение ведется в тяжеловесном, сложном для восприятия стиле. В качестве вводного данный курс трудно рекомендовать.

Конспект лекций по специальным вопросам теории формальных языков и синтаксического анализа (в разработке)

Курс Семёна Григорьева и др. (СПбГУ, JetBrains Research).

https://github.com/JetBrains-Research/FormalLanguageConstrainedReachability-LectureNotes

"Разработка компиляторов на платформе .NET"

Курс 2001 года, авторы А.А. Терехов, Н. Вояковская, Д. Булычев, А. Москаль (СПбГУ).

Доступен конспект лекций.

Если оставить в стороне информацию по внутренностям платформы .Net, то данный текст представляет собой, в основном, выжимку из книги Дракона, учебников Касьянова и Мучника. Тем не менее, раздел по оптимизации достаточно детален. Кроме того, полезно сверяться с этим конспектом по части русскоязычной терминологии.