Опис послуги
ПерекладПотрібен робочий інтерпретатор мови програмування 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 або перенести дизайн на іншу мову-хост. Відмінний варіант для студентів, викладачів та всіх, кому потрібна маленька, але повнофункціональна мова для експериментів.