Описание услуги
Нужен рабочий интерпретатор языка программирования Monkey — учебного языка из книги «Writing an Interpreter in Go» и её продолжения «Writing a Compiler in Go»? Я собираю весь конвейер с нуля и расширяю эталонную реализацию теми возможностями, которые авторы оставили как упражнения.
Что вы получите:
— Написанный вручную лексер, превращающий исходный текст в токены, с отслеживанием позиций для понятных сообщений об ошибках.
— Парсер Пратта (нисходящий разбор по приоритету операторов), строящий чистый типизированный AST.
— Вычислитель по дереву (tree-walking) с целыми числами, булевыми значениями, строками, массивами, хэшами, функциями первого класса и замыканиями.
— Компилятор в байткод и стековую виртуальную машину ради реальной скорости: таблица символов, пул констант, работа с кадрами.
— Встроенные функции, `let`/`if`/`return`, функции высшего порядка и удобный REPL.
Расширения по запросу: числа с плавающей точкой, циклы `while`/`for`, постфиксные и составные операторы, макросы с quote/unquote, импорт модулей, эксперименты со сборкой мусора, значения-ошибки и более богатые встроенные функции стандартной библиотеки.
Каждая сборка идёт с полным набором табличных тестов, аккуратной историей коммитов и README, который проводит по каждому этапу, чтобы вы продолжали учиться прямо по коду. Могу делать на Go или перенести дизайн на другой язык-хост. Отличный вариант для студентов, преподавателей и всех, кому нужен маленький, но полноценный язык для экспериментов.
Что вы получите:
— Написанный вручную лексер, превращающий исходный текст в токены, с отслеживанием позиций для понятных сообщений об ошибках.
— Парсер Пратта (нисходящий разбор по приоритету операторов), строящий чистый типизированный AST.
— Вычислитель по дереву (tree-walking) с целыми числами, булевыми значениями, строками, массивами, хэшами, функциями первого класса и замыканиями.
— Компилятор в байткод и стековую виртуальную машину ради реальной скорости: таблица символов, пул констант, работа с кадрами.
— Встроенные функции, `let`/`if`/`return`, функции высшего порядка и удобный REPL.
Расширения по запросу: числа с плавающей точкой, циклы `while`/`for`, постфиксные и составные операторы, макросы с quote/unquote, импорт модулей, эксперименты со сборкой мусора, значения-ошибки и более богатые встроенные функции стандартной библиотеки.
Каждая сборка идёт с полным набором табличных тестов, аккуратной историей коммитов и README, который проводит по каждому этапу, чтобы вы продолжали учиться прямо по коду. Могу делать на Go или перенести дизайн на другой язык-хост. Отличный вариант для студентов, преподавателей и всех, кому нужен маленький, но полноценный язык для экспериментов.