Goodreads helps you keep track of books you want to read.
Start by marking “Writing An Interpreter In Go” as Want to Read:
Writing An Interpreter In Go
Enlarge cover
Rate this book
Clear rating
Open Preview

Writing An Interpreter In Go

4.53  ·  Rating details ·  118 ratings  ·  19 reviews
In this book we will create a programming language together.

We'll start with 0 lines of code and end up with a fully working interpreter for the Monkey programming language. Monkey has been specifically designed for this book: it's a language that looks a lot like C, has first class functions, closures, strings, hashes and arrays and its only implementation is the one we b
ebook, 200 pages
Published November 23rd 2016
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Writing An Interpreter In Go, please sign up.
Popular Answered Questions
Mr. Musale No it's not. It's an easy book to follow along without struggling.…moreNo it's not. It's an easy book to follow along without struggling.(less)

Community Reviews

Showing 1-30
Average rating 4.53  · 
Rating details
 ·  118 ratings  ·  19 reviews

More filters
Sort order
Start your review of Writing An Interpreter In Go
William Roe
Oct 13, 2018 rated it it was amazing
I loved following this guide through from start to finish. For the most part I'd read and type out the code on my journeys to and from work on the train. There weren't very many places in the book where I had to stop and really concentrate without distractions, but that may be due to my having done compiler and interpreter courses at university a way back, as well as this being one of my main areas of interest in computer science.

When I followed this book through, my skill level with Go was as a
Mr. Musale
May 21, 2020 rated it it was amazing
I enjoyed reading this book. Currently, I'm interested in programming languages and how they work and this book did a fantastic job explaining to me a lot of things. I especially liked the Pratt Parsing section; it had nice images and accompanying code that make the explanations very understandable.

Another thing I liked is the way Thorsten explains concepts and then if it's not in the scope of the book, he gives you nuggets about it and challenges you to take it up and implement it. I liked tha
Alena Varkockova
May 25, 2020 rated it it was amazing
Great read for all the skill levels.
Alessandro Pellizzari
Dec 31, 2019 rated it it was amazing
Shelves: e, go, handbook, programming
This book is amazing! I tried multiple times to study how to write an interpreter or a compiler, and most books and tutorials are just too academic and get lost in the theory.
This goes straight to the point. The code is easy to follow, the descriptions are clear, the algorithms simple and effective.
A must if you are starting out. You can always go deeper in the theory later.
Jan 29, 2017 rated it it was amazing
Loved it! Really fun book if the material is something you're into. I'd highly suggest it. ...more
Mar 20, 2020 rated it really liked it  ·  review of another edition
Really enjoyable and hands-on introduction to the subject.

Not trusting myself to mindlessly copy from the examples, I decided to follow this using Lua rather than Go, and it holds up surprisingly well. The whole book is written using the core Go packages, which makes the code very simple to read for somebody with no prior knowledge of the language. It was only at the very end when implementing hashmaps that I found myself having to deviate from the ideas presented, which seems to prove the value
Povilas Balzaravičius
Nov 29, 2017 rated it really liked it
Good and clear introduction into interpreters. Reader won't find a lot of theory in this book but instead going to build an actual and working interpreter for programming language called "Monkey". Which in my opinion is really good path to understand the way interpreters work. I was actually surprised with provided features of the language starting with basic data types, conditions, functions as first class citizens, closures and more. And everything is covered in this pretty-short book. Recomme ...more
Sep 21, 2017 rated it really liked it
Shelves: compilers
The book is a great introduction to a complex (and very broad topic), I only had a basic understanding of how an interpreter works and the book helped me deepening my knowledge. I liked the approach too: the book is about writing the code for an interpreter and and the author does a great job of guiding the reader into the wonderful details of such a process.

I didn't give it the fifth star because the writing style is pretty annoying, I have to confess that. There are grammar mistakes I couldn't
Aug 10, 2020 rated it it was amazing
I also used it to learn Go, typing the code for the project out along with the book. well written and perfect balance of technical/practical for me. The length was also well-tuned, stopping before concepts implemented became repetitive. Only negative is that the tests were quite cumbersome to write out, and possibly could have been simplified/given more scaffolding so less code was repeated, but they still worked very well for giving you intuition for how the code worked (and you could just copy ...more
Latif alSharif
Jun 18, 2020 rated it it was amazing
It is a must if you want to deepen your understanding of how programming languages work; I suggest you follow it but also make your own design decisions along the way. I found myself spending hours on an end tinkering and fixing errors.

In the early phases, follow the book; but later on you can challenge yourself by trying to implement the functionalities on your own. It might backfire though but that's what makes it fun.
Nov 19, 2019 rated it really liked it
A really nice introduction to the topic! I still remember implementing an interpreter for a functional language in college, and ouch was it a pain. I was impressed by the simplicity of the Pratt parser and by the fact that I had never heard of it... The writing was mostly concise, clear and fun to read. My only pet peeve were the test code dumps, I know they are there for a reason and it was nice at the beginning, but afterwards it felt a bit repetitive and my eyes started to glaze over.
Cole Walker
Jul 06, 2020 rated it it was amazing
This book is a fantastic look at how interpreters are written. It demystifies the entire process, providing a high level overview of each section, code, and tests. I went into this book knowing nothing about Golang, and I came out feeling confident that I could build a programming language if I wanted to.
Bassam Ismail
Mar 04, 2021 rated it it was amazing  ·  review of another edition
Absolutely loved the book. The author has impressive skills in making a dense subject quite simple to digest. The book uses a small subset of the language with limited use of the standard library. Even though I have been using Go for a while there were various novel aspect which I got to learn from it.
Highly recommended to anyone who didn't get a chance to learn the subject at Uni.
Sep 15, 2018 rated it it was amazing
For the beginner and explains how to implement an interpreter in Go from first principles. Very little theory is covered making it accessible to most programmers.
Mar 19, 2020 rated it it was amazing
Shelves: programming
If you want to learn about writing interpreter then this is the book for that.
John Fourkiotis
Sep 04, 2017 rated it really liked it
A very good introduction to interpreters.
Carlos Becker
Jan 28, 2020 rated it it was amazing  ·  review of another edition
Awesome for people curious about how interpreters work and who want a practical book about it.
Apr 13, 2018 rated it it was amazing
I had a great time reading this book. He manages to cover an enormous and daunting subject in a short book, with an approachable style. I felt like I learnt to approach the topic at a reasonably advanced level, while understanding the limitations of that level. There's oodles more to learn, but the platform is solid.

It feels like he learnt the content recently enough to guide you through his own learning process. This is my favourite style of teaching.

Finally, the 'toy' language he created - Mon
Nov 30, 2016 rated it it was amazing
I really enjoyed the modern, practical approach of this book. Diving into the world of interpreters, by getting your hands dirty right from the beginning.
rated it really liked it
Jul 26, 2019
John Doe
rated it really liked it
Apr 13, 2019
rated it really liked it
Mar 05, 2021
rated it it was amazing
Feb 23, 2021
Nick Calibey
rated it it was amazing
Mar 15, 2020
Lukas Pukenis
rated it it was amazing
Nov 18, 2020
Łukasz Lalik
rated it really liked it
Dec 01, 2018
rated it really liked it
Jul 21, 2020
What Bird Is That?
rated it really liked it
Aug 22, 2017
rated it really liked it
Nov 12, 2020
rated it it was amazing
Aug 16, 2020
« previous 1 3 4 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Designing Data-Intensive Applications
  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Pragmatic Programmer: From Journeyman to Master
  • A Tour of C++
  • Code: The Hidden Language of Computer Hardware and Software
  • The C Programming Language
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Soul of a New Machine
  • Starsight (Skyward, #2)
  • The Go Programming Language
  • Crafting Interpreters
  • Programming Rust: Fast, Safe Systems Development
  • Elegant Objects
  • Pro Git
  • The Rust Programming Language
  • Distributed Systems For Fun and Profit
  • Cracking the Coding Interview: 150 Programming Questions and Solutions
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

  Kerine Wint is a software engineering graduate with more love for books than for computers. As an avid reader, writer, and fan of all things...
26 likes · 10 comments
“ILLEGAL and EOF. We didn't” 0 likes
More quotes…