Курс «Компиляторы, интерпретаторы и формальные языки» — это практичное и доступное для новичков погружение в мир разработки языков программирования. Материал объясняется простым языком, а каждое понятие рассматривается через реальные примеры, постепенно приводя вас к созданию собственного интерпретатора.
О курсе
Этот курс дает системное понимание того, как работают компиляторы и интерпретаторы на низком уровне: от анализа исходного кода до генерации машиноподобных инструкций. Вместо абстрактной теории вы получите практический опыт, создавая мини-язык Pinky и его компилятор на Python.
Почему это важно
Понимание принципов компиляции позволяет:
глубже осознать работу языков программирования;
проще писать эффективный и безопасный код;
создавать DSL, парсеры, статические анализаторы и инструменты разработчика;
читать и понимать документацию и стандарты формальных языков.
Что вы изучите
В курсе подробно разбираются ключевые этапы построения компилятора и связанные с ними концепции.
Основные темы
Лексический анализ и токенизация;
Синтаксический анализ и построение схем разбора;
Создание абстрактного синтаксического дерева (AST);
Использование BNF, синтаксических диаграмм и формальных грамматик;
Обработка ошибок на каждом этапе;
Генерация кода, байт-кода и работа с виртуальной машиной;
Основы проверки типов;
Знакомство с LLVM IR и легкими оптимизациями.
Формальные языки
Вы научитесь читать и создавать грамматики, понимать их роль в синтаксическом анализе, а также применять формальные методы для проектирования собственных мини-языков.
Практическая часть курса
Главная ценность курса — полноценный проект: создание компилятора для языка Pinky. Этот учебный язык вдохновлен Lua и ALGOL W и разработан специально для комфортного изучения концепций.
Какие навыки вы получите
написание интерпретатора шаг за шагом;
реализация собственной виртуальной машины;
структурирование и анализ синтаксического дерева;
создание простого, но рабочего байт-кода;
реализация базовых оптимизаций;
понимание того, как перенести эти идеи на C или другой низкоуровневый язык.
Инструменты и требования
Для прохождения курса не требуются глубокие знания компиляторов — достаточно базовых навыков программирования. Все упражнения выполняются в Python, что делает разработку быстрой и наглядной.
Вам понадобится
командная строка;
любой текстовый редактор;
интерпретатор Python.
Порог входа
Если вы знакомы с if-else, циклами и функциями — этого достаточно. Всё остальное вы изучите в процессе.
Для кого этот курс
Материал будет полезен начинающим разработчикам, студентам, энтузиастам информатики и всем, кто хочет понять, как на самом деле работают языки программирования — без мифов и «драконов».
Итоги
К концу курса вы создадите собственный язык, напишете для него интерпретатор и разберетесь в основах компиляции. Это отличный фундамент для дальнейшего изучения системного программирования, разработки языков и интерфейсов кода.
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
Gustavo Pezzi - преподаватель университета в Лондоне, Великобритания. Он получил несколько образовательных наград в качестве учителя и также является основателем pikuma.com. Густаво преподает основы информатики и математики; его академический путь включает такие учебные заведения, как Государственный университет Питтсбурга, Городской университет Лондона и Оксфордский университет.
can you please please update this course to the latest changes of 2026?
CourseHunter Team elektroman
Nothing was updated there
elektroman CourseHunter Team
thanks for having a look!
CourseHunter Team elektroman
🤝
kaamukvridhi
There was some update in January 2026, please update
Umaru
"We are adding a new chapter on LLVM IR to our "Compilers & Interpreters" module. It will go live early next week." - pikuma on X Prepare urself, I will notify you next week.
CourseHunter Team Umaru
Yes, please let us know if we miss it
dasr43475 CourseHunter Team
Meownager , I am sorry for the harsh comments previously made by me on this course 🙁🙁 But all the text files under each module of the course is missing
Module Name Missing Files ------------------------------------------------------------------------------- Introduction Your Favorite Programming Language The Nature of Computation CPU Status Flags The Nature of Computation CPU Components Quiz The Nature of Computation Why the 68000? Structure of a Program Types of Compilers Scanning Tokens Why Not Just Use a RegEx? Scanning Tokens Stropping Scanning Tokens Different Languages & Comments Scanning Tokens Watching our Memory Footprint Parsing Expressions S-expressions Displaying Errors Error Recovery Strategies Interpreting Expressions Can We Subtract Strings? Interpreting Expressions Chained Expressions Program Statements Automatic Semicolon Insertion Program Statements Delimiting Blocks & Dangling Else Program State To "Var" or Not to "Var"? Loop Statements Turing Completeness Loop Statements The ALGOL Family of Languages Emitting Instructions I Was Promised Bytes! Emitting Instructions Where are Instructions Stored? Writing a VM Unpacking Argument List VM Jumps & Branches Encoding Stack Values with C Stack & Register VMs P-Machine & P-Code Type Systems & Type Checkers Purposes of a Type System -------------------------------------------------------------------------------------------------------
All these are the missing files in the course archive can you please kindly check and add those files please meownager 🙏🙏 Thanks in advance 😅🙏❤️
CourseHunter Team dasr43475
Updated archive and materials. You can find these files at HTML folder.
dasr43475 CourseHunter Team
Thank u so so much Andrew for considering 🙏🙏🥺 Btw, the new update is so cool , I saw a ghost running across my viewport couple of times , saying random ChatGPT facts , haha
CourseHunter Team dasr43475
You are welcome ;)
dasr43475 dasr43475
I am sorry , I gave space in between the two columns but the system stripped the whitespace and sadly now I cant edit and put semicolons or slash in between
Prepare urself, I will notify you next week.
But all the text files under each module of the course is missing
Module Name Missing Files
-------------------------------------------------------------------------------
Introduction Your Favorite Programming Language
The Nature of Computation CPU Status Flags
The Nature of Computation CPU Components Quiz
The Nature of Computation Why the 68000?
Structure of a Program Types of Compilers
Scanning Tokens Why Not Just Use a RegEx?
Scanning Tokens Stropping
Scanning Tokens Different Languages & Comments
Scanning Tokens Watching our Memory Footprint
Parsing Expressions S-expressions
Displaying Errors Error Recovery Strategies
Interpreting Expressions Can We Subtract Strings?
Interpreting Expressions Chained Expressions
Program Statements Automatic Semicolon Insertion
Program Statements Delimiting Blocks & Dangling Else
Program State To "Var" or Not to "Var"?
Loop Statements Turing Completeness
Loop Statements The ALGOL Family of Languages
Emitting Instructions I Was Promised Bytes!
Emitting Instructions Where are Instructions Stored?
Writing a VM Unpacking Argument List
VM Jumps & Branches Encoding Stack Values with C
Stack & Register VMs P-Machine & P-Code
Type Systems & Type Checkers Purposes of a Type System
-------------------------------------------------------------------------------------------------------
All these are the missing files in the course archive
can you please kindly check and add those files please meownager 🙏🙏
Thanks in advance 😅🙏❤️
Btw, the new update is so cool , I saw a ghost running across my viewport couple of times , saying random ChatGPT facts , haha