About the service
Need a working interpreter for the Monkey programming language — the educational language from the book "Writing an Interpreter in Go" and its sequel "Writing a Compiler in Go"? I assemble the entire pipeline from scratch and extend the reference implementation with the capabilities the authors left as exercises.
What you will get:
— A hand-written lexer that turns source code into tokens, with position tracking for readable error messages.
— A Pratt parser (top-down parsing by operator precedence) that builds a clean typed AST.
— A tree-walking evaluator with integers, booleans, strings, arrays, hashes, first-class functions and closures.
— A compiler to bytecode and stack-based virtual machine for real speed: symbol table, constant pool, frame handling.
— Built-in functions, `let`/`if`/`return`, higher-order functions and a convenient REPL.
Extensions on request: floating-point numbers, `while`/`for` loops, postfix and compound operators, macros with quote/unquote, module imports, garbage collection experiments, error values and richer built-in standard library functions.
Each build comes with a full set of table-driven tests, a clean commit history and a README that walks you through each stage so you keep learning straight from the code. I can do it in Go or port the design to another host language. A great option for students, teachers and anyone who needs a small but full-featured language for experiments.
What you will get:
— A hand-written lexer that turns source code into tokens, with position tracking for readable error messages.
— A Pratt parser (top-down parsing by operator precedence) that builds a clean typed AST.
— A tree-walking evaluator with integers, booleans, strings, arrays, hashes, first-class functions and closures.
— A compiler to bytecode and stack-based virtual machine for real speed: symbol table, constant pool, frame handling.
— Built-in functions, `let`/`if`/`return`, higher-order functions and a convenient REPL.
Extensions on request: floating-point numbers, `while`/`for` loops, postfix and compound operators, macros with quote/unquote, module imports, garbage collection experiments, error values and richer built-in standard library functions.
Each build comes with a full set of table-driven tests, a clean commit history and a README that walks you through each stage so you keep learning straight from the code. I can do it in Go or port the design to another host language. A great option for students, teachers and anyone who needs a small but full-featured language for experiments.