𝕯𝖆𝖗𝖐🥰𝕬𝖓𝖌𝖊𝖑
МОДЕРАТОР
- Регистрация
- 7 Апр 2025
- Сообщения
- 10,778
- Реакции
- 81
Автор: Thorsten Ball
Название: Написание компилятора на Go

Язык: Английский
Вес архива: 6 МБ
Книга "Написание компилятора на Go" — это практическое руководство для разработчиков, которые хотят углубиться в устройство языков программирования и построить собственный компилятор и виртуальную машину. Пошаговый подход, акцент на работающем коде и ясное объяснение архитектуры делают изучение понятным и увлекательным.
О чём эта книга
Данное издание продолжает "Написание интерпретатора на Go" и использует его кодовую базу как фундамент. Вместо интерпретации кода Monkey через AST вы перейдёте на новый уровень — к компиляции в байт-код и выполнению на собственной стековой виртуальной машине.
Основная идея
Вы шаг за шагом создадите новый механизм выполнения Monkey, который:
• быстрее интерпретатора примерно в 3 раза,
• архитектурно ближе к реальным языкам и их рантаймам,
• даёт глубокое понимание работы компиляторов и VM.
Продолжение первой книги
Хотя можно работать с кодом первой части как с «чёрным ящиком», максимальную пользу принесёт знакомство с тем, как он устроен внутри. В этой книге вы расширите:
• лексер,
• парсер,
• AST,
• систему объектов,
• REPL.
Все новые компоненты создаются параллельно — у вас всегда будет работоспособная система, которую можно улучшать и дополнять.
Что вы создадите
В ходе работы вы спроектируете и реализуете полный цикл выполнения программ Monkey: от определения инструкций до виртуальной машины.
Система байт-кода
• Описание и кодировка инструкций,
• определение операндов,
• создание мини-дизассемблера.
Компилятор Monkey
• Преобразование AST в набор инструкций,
• генерация корректного байт-кода,
• ведение таблицы символов и пула констант.
Стековая виртуальная машина
• Реализация основного цикла исполнения,
• управление стеком и указателями стека,
• выполнение арифметических и логических операций,
• введение фреймов для функций.
Продвинутые возможности
Помимо базовой архитектуры вы реализуете функциональность, которая делает язык полноценным и мощным.
Поддержка функций
• работа с локальными привязками,
• обработка аргументов,
• вызовы функций через фреймы.
Встроенные функции и расширение языка
• добавление встроенных функций,
• оптимизация выполнения примитивных операций.
Реализация замыканий
Вы разработаете корректную и эффективную систему замыканий, разберётесь, почему их компиляция является сложной задачей, и научитесь управлять их областями видимости в VM.
Чему вы научитесь
Книга сочетает теорию и практику, помогая глубже понять:
• как устроен машинный код и операционные коды,
• что такое стек, стековые указатели и базовые указатели,
• как определяются соглашения о вызовах,
• как проектируются компактные и эффективные виртуальные машины.
Итог
После прохождения книги у вас будет собственный компилятор и виртуальная машина, полностью построенные на Go. Вы увидите весь процесс создания рабочей архитектуры — от первых инструкций до полноценного выполнения программ на Monkey — и получите понимание того, как устроены языки программирования, которыми вы пользуетесь каждый день.
СКАЧАТЬ:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь