Описание
Количество уроков: 20 Видео
Язык: Английский
Вес архива: 806 МБ
Хотите понять, как реальные языки программирования проверяют типы, находят ошибки до запуска и обеспечивают безопасность кода? В этом курсе вы на практике создадите собственный статический типизатор с нуля — понятный, компактный и полностью рабочий.
Почему стоит изучить построение типизатора
Нетипизированные программы подвержены множеству скрытых ошибок, которые проявляются только во время выполнения. Статический типизатор позволяет:
• обнаруживать ошибки ещё на этапе разработки;
• ускорять процесс отладки;
• повышать надежность и предсказуемость кода;
• облегчать поддержку и развитие проекта.
При этом большинство материалов о теории типов объясняют концепции абстрактно и не показывают, как построить реальный работающий типизатор. Этот курс создан, чтобы заполнить пробел.
Что будет в курсе
Курс фокусируется на статической типизации и поэтапно показывает, как разработать типизатор, похожий по идеям на TypeScript или Java. Мы начинаем с базовых концепций теории типов, а затем — сразу к практике.
Основные темы
• что такое вывод типов и типовые суждения;
• сильная и слабая типизация — что это значит на практике;
• как организована система типов внутри языков программирования;
• архитектура и структура модулей типизатора;
• построение собственных правил вывода и проверки типов;
• алгоритмы унификации и проверки совместимости типов.
Практическая часть
С первых лекций вы будете писать код типизатора самостоятельно, шаг за шагом. Каждая деталь объясняется в live‑сессиях и закрепляется через задания в репозитории.
Навыки, которые вы получите
• понимание внутренних механизмов компиляторов и языка;
• умение проектировать сложные системы с нуля;
• практический опыт работы со структурами данных и алгоритмами;
• глубокое понимание систем типов — знания, которые легко переносить между языками.
Предварительные требования
Желательно, но не обязательно пройти курс «Построение интерпретатора с нуля». Если вы уже понимаете, что такое eval, замыкания, цепочка областей видимости и работа интерпретаторов, вы готовы к материалу.
Для кого этот курс
Курс подойдет инженерам, которые:
• интересуются компиляторами, языками программирования и теорией типов;
• хотят построить модуль типизации для собственного языка;
• стремятся про

Ольга С. –
Практикующий разработчик, хотела заглянуть внутрь системы типов, а не просто пользоваться аннотациями. Формат live-сессий с пошаговым написанием кода подошёл идеально: сразу видно, как строится правило вывода и где ломается проверка. Понравилось, что на примерах разбирается суть унификации, а не абстрактные формулы. Курс короткий, но плотный, пересматривала отдельные уроки по два раза.
Андрей К. –
Есть опыт с компиляторами, поэтому первые лекции про сильную и слабую типизацию показались разжеванными. Зато часть про архитектуру модулей типизатора и алгоритм унификации порадовала — всё по делу, без воды. Хотелось бы больше внимания проверке совместимости типов на сложных примерах, но объём курса в 20 уроков этот пробел отчасти объясняет. В целом взял для себя рабочие схемы, которые применяю в своём проекте.
Марина В. –
Брала курс почти с нуля, до этого только читала про теорию типов и не понимала, как это применить. Сошников объясняет вывод типов и типовые суждения очень наглядно, а на live-сессиях видно, как правила превращаются в рабочий код. Задания в репозитории заставляют реально писать, а не просто смотреть. За две недели собрала компактный типизатор и наконец поняла, откуда берутся ошибки компиляции в TypeScript.