Этот курс поможет вам практически освоить создание парсера с нуля: от токенизации до построения AST и полного синтаксического анализатора, применимого к языкам, похожим на Java или JavaScript. Материал подан так, чтобы вы понимали каждую деталь, а не просто копировали готовый код.
О курсе
Синтаксический анализ — ключевой этап разработки любых компиляторов и интерпретаторов. В этом курсе вы создадите собственный парсер рекурсивного спуска вручную и разберетесь, как работает внутренняя архитектура языков программирования.
- Поймёте логику токенизации и построения дерева разбора.
- Освоите методики упреждающего просмотра и прогнозирующего анализа.
- Создадите полноценный синтаксический анализатор для небольшого языка.
- Получите опыт построения сложных инженерных систем.
Для кого подходит этот курс
Курс рассчитан на разработчиков, которые хотят глубже понять принципы работы языков программирования и компиляторов. Он будет особенно полезен:
- инженерам, интересующимся низкоуровневой архитектурой языков;
- разработчикам инструментов анализа, трансформации и генерации кода;
- тем, кто хочет создать собственный язык программирования;
- тем, кто уже использует AST-инструменты (Babel, ESLint, Prettier) и хочет понять их изнутри.
Предварительные знания: базовые структуры данных, алгоритмы, деревья, списки, принципы обхода и регулярные выражения.
Инструменты, используемые в курсе
Мы будем реализовывать парсер на JavaScript благодаря его простой, гибкой и выразительной структуре. При этом логика разработки полностью переносима на любые другие языки — Python, Java, C++, Go или Rust.
Цель — понять фундаментальные принципы, а не привязаться к конкретному синтаксису.
Преимущества курса
- Краткость и структурированность. Каждая лекция посвящена конкретной теме и содержит только важную информацию.
- Анимированные презентации. Визуальная демонстрация работы структур, которые тяжело объяснить статичными слайдами.
- Программирование в реальном времени. Вы увидите выполнение всего процесса от пустого файла до готового парсера.
Структура курса
Курс состоит из четырёх логических частей и включает 18 лекций с большим количеством практических упражнений.
Часть 1. Основные выражения и Tokenizer
Вы научитесь обрабатывать базовые выражения — числа, строки — и создадите Tokenizer на основе регулярных выражений.
Часть 2. Структура программы
Здесь мы вводим концепцию операторов, списков операторов, блоков и правил рекурсивного производства. Также обсуждаем различные форматы AST и начинаем строить сложную грамматику.
Часть 3. Поток управления и функции
Вы реализуете переменные, присваивание, приоритет операторов, функции, условные конструкции и циклы — всё, что составляет основу любого языка.
Часть 4. Объектно-ориентированное программирование
На финальном этапе вы добавите классы, объекты, доступ к свойствам, массивы и вызовы методов, а затем соберёте полноценный синтаксический анализатор.
Итог
По окончании курса вы будете уверенно ориентироваться в синтаксических анализаторах, понимать внутреннее устройство языков программирования и сможете создавать сложные инструменты обработки кода.