It's called Writing A Compiler In Go and is the sequel to Writing An Interpreter In Go.
It's a sequel in code and in prose. We're picking up right where we left off and write a compiler and a virtual machine for Monkey. Just like before, the focus is runnabled and tested code, built from the ground up, step by step. Only this time, we're compiling and executing bytecode. It's the next step in Monkey's evolution.
Find out more at compilerbook.com
Hi there! My name is Thorsten Ball. I'm a software developer living in Aschaffenburg, Germany, a small city near Frankfurt am Main.
I like to develop, optimize and take care of sophisticated systems. Or put another way: I like to program where the rubber hits the road -- wherever that may be.
But before I leave for work, in the early morning hours, I love to deep dive into other programming topics that interest me: programming languages, interpreters, compilers, web servers, systems programming, Unix, databases. I'm a big fan of digging deep and peeling away at abstraction layers to get a better sense of what I'm working with and more leverage higher up. In short: I love learning new things.
Self-published in November 2016
In the book we build a programming language from scratch. We start with 0 lines of code and end up with a fully working interpreter for the Monkey programming language. We build the lexer, the parser, the AST, the object system, and the evaluator — written with tests first and without 3rd-party libraries. This book is not about theory, its focus is runnable, working code.
Find out more and buy it at interpreterbook.com
About to be released in July 2018
This is the sequel to Writing An Interpreter In Go and contains the next step in the evolution of the Monkey programming language: we're switching out the tree-walking evaluator for a bytecode compiler and virtual machine. It starts where the first book ends, uses the same codebase and follows the same approach: working code front and center, written from the ground up, tested and runnable.
Find out more about it at compilerbook.com
You can subscribe to post updates via the Atom feed.
Applikatoni - A deployment server for small teams with multiple applications, written in Go, developed at flinc.
Watchgopher - A lightweight, scriptable and UNIX-y filewatcher.
dotfiles - My dotfiles. git, zsh, tmux, etc.
vimconfig - Everything that goes on in my ~/.vim folder.
Not finished, not stable, not ready for production, but fun!
Helles - A multi-process webserver written entirely in C.
Sceem - A small Lisp/Scheme interpreter written in Ruby.
Never hesitate to send me an email at email@example.com. I love getting email from you.
I also maintain a mailing list, on which I sent out occasional updates about my book or this blog. I won't spam you and you can unsubscribe at any time.