Thorsten Ball

Home Books (Update!) Posts Talks Projects Contact

I wrote a second book!

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

Writing An Interpreter In Go: The Paperback Edition

22 Feb 2017

If you’d asked me a only few months ago if there’ll ever be a printed version of Writing An Interpreter In Go I’d responded with a “Huh, uummm, well, I don’t know. Maybe. Maybe if I’ll find the time and if there’s any interest.”

As it turned out, to my surprise, quite a few people told me that they’d love hold a copy of the book in their hands. And I also had some free time on my hands. Alright, let’s do it then, I thought.

But even though I said that time and interest were the only limiting factors, I knew that there couldn’t be a printed version without Monkey - the programming language that we build in the book - having a logo. Yes, I know, I know, that’s not a real requirement, but a little indulgement I wouldn’t deny myself. So I created a 99designs contest and Hazel Anne submitted the winning entry. I love the logo Monkey has now.

A paperback version of a book also needs a full cover, front and back, and so I wrestled with vector images and PDFs and print dimensions and page bleed and spine widths for quite a while. But, in the end, using createspace to print and distribute my book turned out to be much easier than one might think. I was lucky enough to already have had a working Pandoc setup in place and only needed to add one more LaTeX template, the one for the print version.

The result, I think, was worth it:

That’s 260 pages, 18cm wide and 26cm long, with full-color syntax highlighting.

Since the book is printed on-demand by createspace, which is an Amazon company, it’s available for purchase in these Amazon stores:

Or you can just go to and click on one of the big, red buttons.

If you appreciate holding a physical copy of a book in your hands more than having a PDF on your hard drive, I hope you enjoy this paperback edition.

Follow me on twitter: @thorstenball. Or send me an email to Or check out my books at and

I also maintain a mailing list, on which I sent out occasional updates about my books or this blog. I won't spam you and you can unsubscribe at any time.

Keep me updated!