Программирование [Дмитрий Сошников] Typechecker (типизатор) с нуля

Регистрация
7 Апр 2025
Сообщения
10,778
Реакции
81
Автор: Дмитрий Сошников​
Название: Typechecker (типизатор) с нуля​

cover.jpg

Продолжительность: 2 ч 16 мин Количество уроков: 20 Видео Язык: Английский Вес архива: 806 МБ


Хотите понять, как реальные языки программирования проверяют типы, находят ошибки до запуска и обеспечивают безопасность кода? В этом курсе вы на практике создадите собственный статический типизатор с нуля — понятный, компактный и полностью рабочий.

Почему стоит изучить построение типизатора

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

• обнаруживать ошибки ещё на этапе разработки;
• ускорять процесс отладки;
• повышать надежность и предсказуемость кода;
• облегчать поддержку и развитие проекта.

При этом большинство материалов о теории типов объясняют концепции абстрактно и не показывают, как построить реальный работающий типизатор. Этот курс создан, чтобы заполнить пробел.

Что будет в курсе

Курс фокусируется на статической типизации и поэтапно показывает, как разработать типизатор, похожий по идеям на TypeScript или Java. Мы начинаем с базовых концепций теории типов, а затем — сразу к практике.

Основные темы

• что такое вывод типов и типовые суждения;
• сильная и слабая типизация — что это значит на практике;
• как организована система типов внутри языков программирования;
• архитектура и структура модулей типизатора;
• построение собственных правил вывода и проверки типов;
• алгоритмы унификации и проверки совместимости типов.

Практическая часть

С первых лекций вы будете писать код типизатора самостоятельно, шаг за шагом. Каждая деталь объясняется в live‑сессиях и закрепляется через задания в репозитории.

Навыки, которые вы получите

• понимание внутренних механизмов компиляторов и языка;
• умение проектировать сложные системы с нуля;
• практический опыт работы со структурами данных и алгоритмами;
• глубокое понимание систем типов — знания, которые легко переносить между языками.

Предварительные требования

Желательно, но не обязательно пройти курс «Построение интерпретатора с нуля». Если вы уже понимаете, что такое eval, замыкания, цепочка областей видимости и работа интерпретаторов, вы готовы к материалу.

Для кого этот курс

Курс подойдет инженерам, которые:

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

Используемые технологии

Типизатор мы пишем на чистом JavaScript, поскольку он доступен практически всем, а реализацию легко перенести в любой другой язык: TypeScript, Rust, OCaml, C++, Python и т. д.

Код в репозитории содержит задания с пометкой /* Реализовать здесь */, чтобы вы не просто копировали решение, а понимали и создавали типизатор самостоятельно.

СКАЧАТЬ:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь
 
10,840Темы
10,893Сообщения
788Пользователи
MuhaНовый пользователь
Сверху