Программирование [Gustavo Pezzi] Компиляторы, интерпретаторы и формальные языки (2024)

Регистрация
7 Апр 2025
Сообщения
10,778
Реакции
81
Автор: Gustavo Pezzi​
Название: Компиляторы, интерпретаторы и формальные языки (2024)​

cover.jpg

Продолжительность: 28 ч 52 мин Количество уроков: 171 Видео Язык: Английский Вес архива: 4,92 ГБ


Курс «Компиляторы, интерпретаторы и формальные языки» — это практичное и доступное для новичков погружение в мир разработки языков программирования. Материал объясняется простым языком, а каждое понятие рассматривается через реальные примеры, постепенно приводя вас к созданию собственного интерпретатора.

О курсе

Этот курс дает системное понимание того, как работают компиляторы и интерпретаторы на низком уровне: от анализа исходного кода до генерации машиноподобных инструкций. Вместо абстрактной теории вы получите практический опыт, создавая мини-язык Pinky и его компилятор на Python.

Почему это важно

Понимание принципов компиляции позволяет:

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

Что вы изучите

В курсе подробно разбираются ключевые этапы построения компилятора и связанные с ними концепции.

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

• Лексический анализ и токенизация;
• Синтаксический анализ и построение схем разбора;
• Создание абстрактного синтаксического дерева (AST);
• Использование BNF, синтаксических диаграмм и формальных грамматик;
• Обработка ошибок на каждом этапе;
• Генерация кода, байт-кода и работа с виртуальной машиной;
• Основы проверки типов;
• Знакомство с LLVM IR и легкими оптимизациями.

Формальные языки

Вы научитесь читать и создавать грамматики, понимать их роль в синтаксическом анализе, а также применять формальные методы для проектирования собственных мини-языков.

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

Главная ценность курса — полноценный проект: создание компилятора для языка Pinky. Этот учебный язык вдохновлен Lua и ALGOL W и разработан специально для комфортного изучения концепций.

Какие навыки вы получите

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

Инструменты и требования

Для прохождения курса не требуются глубокие знания компиляторов — достаточно базовых навыков программирования. Все упражнения выполняются в Python, что делает разработку быстрой и наглядной.

Вам понадобится

• командная строка;
• любой текстовый редактор;
• интерпретатор Python.

Порог входа

Если вы знакомы с if-else, циклами и функциями — этого достаточно. Всё остальное вы изучите в процессе.

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

Материал будет полезен начинающим разработчикам, студентам, энтузиастам информатики и всем, кто хочет понять, как на самом деле работают языки программирования — без мифов и «драконов».

Итоги

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

СКАЧАТЬ:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь
 

Похожие темы

10,840Темы
10,893Сообщения
788Пользователи
MuhaНовый пользователь
Сверху