← На главную

Курс компиляторов Корнелла: без дедлайнов c LLVM экзамен—изменить мир

18.06.2026 11:04 · hackernews

CS 6120 — PhD-курс Корнелла по реализации языков программирования, который ведёт Адриан Сэмпсон. Он закрывает и классические темы компиляторов (промежуточные представления, потоки данных, стандартные оптимизации), и исследовательские (распараллеливание, JIT-компиляция, сборка мусора). Всё построено на чтении статей и open-source задачах — кодят на LLVM и на учебном IR, придуманном специально для этого курса.

Страница — это учебный план для «университета вашего воображения» на четыре воображаемых зачёта (без оценки). Там линейная хронология уроков, перемежающихся с научными статьями. К каждому уроку прилагаются видео и письменные конспекты, а к некоторым — практические задания. Задания открытые, разной степени свободы, они превращают абстрактные концепции в реальный код. Порядок — лишь рекомендация, как чередовать видео и чтение.

Отличия от «настоящего» CS 6120: можно игнорировать дедлайны, нельзя участвовать в обсуждениях на Zulip, и нет итогового семестрового проекта. В самостоятельной версии ваш финальный экзамен — «изменить мир через магию компиляторов». Инструктор признаётся, что он новичок в видеопроизводстве, так что за качество извиняется (особенно в первых лекциях).

Курс открыт на GitHub — туда можно отправлять bug-репорты. По окончании просят заполнить форму обратной связи. В программе: Lesson 1 — обзор, Lesson 2 — представление программ, Lesson 3 — локальный анализ и оптимизация, Lesson 6 — Static Single Assignment, Lesson 9 — межпроцедурный анализ, и Lesson 13 — конкурентность и параллелизм. Из статей упомянуты «An Efficient Implementation of SELF…» (Chambers, Ungar, Lee, 1989) и «Trace‑Based Just‑in‑Time Type Specialization for Dynamic Languages» (Gal, Eich, Shaver и др., 2009) — обе посвящены динамическим языкам и JIT.

Читать оригинал →