Получите бесплатно расширенные компиляторы Cornell CS 6120


Курс на уровне доктора философии, первоначально предоставлявшийся студентам Корнельского университета компьютерных наук дистанционно, теперь стал доступен всем бесплатно в самостоятельной версии.

Полное название этого курса — Осень 2020: CS 6120, «Продвинутые компиляторы». Это новый экспериментальный курс PhD по реализации языков программирования с использованием широкого определения термина «компиляторы». Его ведет Адриан Симпсон, доцент кафедры информатики Корнельского университета, специализирующийся на языках программирования и компьютерной архитектуре. .

Курс охватывает:

Темы универсальных компиляторов, такие как промежуточные представления, поток данных и «классическая» оптимизация, а также более исследовательские темы, такие как распараллеливание, своевременная компиляция и сборка мусора. Использование LLVM и образовательного IR (промежуточное представление, называемое Брил) придумали именно для этого класса:

Bril — это язык, ориентированный на инструкции, как и большинство хороших IR. Ядро минимальное и безжалостно регулярное. Расширения делают его интересным. Инструменты не зависят от языка. Программы Bril — это просто JSON. Bril набирается.

Есть 13 уроков, состоящих из видео, заметок и заданий по написанию кода. В конце есть также финальное задание. Основное отличие от «настоящего» CS 6120 состоит в том, что вы можете игнорировать крайние сроки выполнения задач и не можете участвовать в обсуждениях в классе.

Вот эти уроки:

Урок 1: приветствие и обзор

Урок 2: Представление программ

Урок 3: Локальный анализ и оптимизация

Урок 4: Поток данных

Урок 5: Глобальный анализ и SSA

Урок 6: LLVM

Урок 7: Оптимизация цикла

Урок 8: Межпроцедурный анализ

Урок 9: Анализ псевдонимов

Урок 10: Управление памятью

Урок 11: Динамические компиляторы

Урок 12: Синтез программы

Урок 13: Параллелизм и параллелизм

У каждого урока есть связанная задача. Например, Урок 2 требует от учащегося познакомиться с Bril, написать новый тест производительности и программу для небольшого анализа или преобразования программ Bril. Поскольку вы будете выполнять задания для самостоятельного обучения, вам не нужно отправлять задания, хотя рекомендуется попробовать их, чтобы закрепить теорию. Проблема в том, что если у вас возникнут проблемы, реальной помощи нет, так как вы не можете никого попросить.

Ожидается, что в перерывах между уроками студенты прочитают исследовательские работы с внешними ссылками, такие как «Эффективная реализация SELF, объектно-ориентированного языка с динамической типизацией на основе прототипов», «Хлорофилл: компилятор на основе синтеза для маломощных пространственных архитектур». или «Своевременная специализация типов на основе трассировки для динамических языков».

Этот курс не о парсинге, а о более глубоких темах семантики программ и оптимизации компилятора. Он требует большого количества исследований и носит теоретический характер, так как он соответствует своему бренду как «докторский уровень». Если вы более практичны, то вам лучше выбрать более практичные альтернативы из следующих замечательных книг:

Как создавать прагматичные, легкие языки

Парсинг с помощью регулярных выражений и грамматик Perl 6

С другой стороны, если вы действительно хотите погрузиться в волшебство компилятора, то это шанс, которого вы так долго ждали …


Добавить комментарий