Let's study Crafting Interpreters
together.
The idea is: we study individually, but on an agreed schedule (e.g. read Chapter 3 and do the challenges), and have a regular online meetup where we exchange our issues and help each other. Provisionally the schedule is every two weeks, but we'll see what pace is comfortable/sustainable. We skip the meetings during the school holidays of the canton of Zuerich.
Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam.
That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun.
This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused.
https://craftinginterpreters.com/
https://corecursive.com/032-bob-nystrom-on-building-an-interpreter/
https://github.com/munificent/craftinginterpreters
https://github.com/CodersOnlyCH/crafting-interpreters
The idea is: we study individually, but on an agreed schedule (e.g. read Chapter 3 and do the challenges), and have a regular online meetup where we exchange our issues and help each other. Provisionally the schedule is every two weeks, but we'll see what pace is comfortable/sustainable. We skip the meetings during the school holidays of the canton of Zuerich.
- Read chapter 1:
https://craftinginterpreters.com/introduction.html
- do the challenges of the chapter
- buy the book so that Robert Nystrom gets a little bit of money for his superb work
- listen to https://corecursive.com/032-bob-nystrom-on-building-an-interpreter/
We review this work on Review Meeting 1 on Thursday 09 January 2025, 19:00 CET
-
Read chapter 2:
https://craftinginterpreters.com/a-map-of-the-territory.html
-
do the challenges of the chapter
We review this work on Review Meeting 2 on Thursday 23 January 2025, 19:00 CET
-
Read chapter 3:
https://craftinginterpreters.com/the-lox-language.html
-
do the challenges of the chapter
We review this work on Review Meeting 3 on Thursday 27 February 2025, 19:00 CET
-
Read chapter 4:
https://craftinginterpreters.com/scanning.html
-
do the challenges of the chapter
We review this work on Review Meeting 4 on Thursday 13 March 2025, 19:00 CET
-
Read chapter 5:
https://craftinginterpreters.com/representing-code.html
-
do the challenges of the chapter
We review this work on Review Meeting 5 on Thursday 27 March 2025, 19:00 CET
-
Read chapter 6:
https://craftinginterpreters.com/parsing-expressions.html
-
do the challenges of the chapter
We review this work on Review Meeting 6 on Thursday 10 April 2025, 19:00 CET
-
Read chapter 7:
https://craftinginterpreters.com/evaluating-expressions.html
-
do the challenges of the chapter
We review this work on Review Meeting 7 on Thursday 08 May 2025, 19:00 CET
-
Read chapter 8:
https://craftinginterpreters.com/statements-and-state.html
-
do the challenges of the chapter
We review this work on Review Meeting 8 on Thursday 22 May 2025, 19:00 CET
-
Read chapter 9:
https://craftinginterpreters.com/control-flow.html
-
do the challenges of the chapter
We review this work on Review Meeting 9 on Thursday 12 June 2025, 19:00 CET
-
Read chapter 10:
https://craftinginterpreters.com/functions.html
-
do the challenges of the chapter
We review this work on Review Meeting 10 on Thursday 26 June 2025, 19:00 CET
-
Read chapter 11:
https://craftinginterpreters.com/resolving-and-binding.html
-
do the challenges of the chapter
We review this work on Review Meeting 11 on Thursday 10 July 2025, 19:00 CET
-
Read chapter 12:
https://craftinginterpreters.com/classes.html
-
do the challenges of the chapter
We review this work on Review Meeting 12 on Thursday 28 August 2025, 19:00 CET
-
Read chapter 13:
https://craftinginterpreters.com/inheritance.html
-
do the challenges of the chapter
We review this work on Review Meeting 13 on Thursday 11 September 2025, 19:00 CET
-
Read chapter 14:
https://craftinginterpreters.com/chunks-of-bytecode.html
-
do the challenges of the chapter
We review this work on Review Meeting 14 on Thursday 25 September 2025, 19:00 CET
-
Read chapter 15:
https://craftinginterpreters.com/a-virtual-machine.html
-
do the challenges of the chapter
We review this work on Review Meeting 15 on Thursday 23 October 2025, 19:00 CET
-
Read chapter 16:
https://craftinginterpreters.com/scanning-on-demand.html
-
do the challenges of the chapter
We review this work on Review Meeting 16 on Thursday 13 November 2025, 19:00 CET
-
Read chapter 17:
https://craftinginterpreters.com/compiling-expressions.html
-
do the challenges of the chapter
We review this work on Review Meeting 17 on Thursday 27 November 2025, 19:00 CET
-
Read chapter 18:
https://craftinginterpreters.com/types-of-values.html
-
do the challenges of the chapter
We review this work on Review Meeting 18 on Thursday 11 December 2025, 19:00 CET
-
Read chapter 19:
https://craftinginterpreters.com/strings.html
-
do the challenges of the chapter
We review this work on Review Meeting 19 on Thursday 08 January 2026, 19:00 CET
-
Read chapter 20:
https://craftinginterpreters.com/hash-tables.html
-
do the challenges of the chapter
We review this work on Review Meeting 20 on Thursday 22 January 2026, 19:00 CET
-
Read chapter 21:
https://craftinginterpreters.com/global-variables.html
-
do the challenges of the chapter
We review this work on Review Meeting 21 on Thursday 26 February 2026, 19:00 CET
-
Read chapter 22:
https://craftinginterpreters.com/local-variables.html
-
do the challenges of the chapter
We review this work on Review Meeting 22 on Thursday 12 March 2026, 19:00 CET
-
Read chapter 23:
https://craftinginterpreters.com/jumping-back-and-forth.html
-
do the challenges of the chapter
We review this work on Review Meeting 23 on Thursday 26 March 2026, 19:00 CET
-
Read chapter 24:
https://craftinginterpreters.com/calls-and-functions.html
-
do the challenges of the chapter
We review this work on Review Meeting 24 on Thursday 09 April 2026, 19:00 CET
-
Read chapter 25:
https://craftinginterpreters.com/closures.html
-
do the challenges of the chapter
We review this work on Review Meeting 25 on Thursday 14 May 2026, 19:00 CET
-
Read chapter 26:
https://craftinginterpreters.com/garbage-collection.html
-
do the challenges of the chapter
We review this work on Review Meeting 26 on Thursday 28 May 2026, 19:00 CET
-
Read chapter 27:
https://craftinginterpreters.com/classes-and-instances.html
-
do the challenges of the chapter
We review this work on Review Meeting 27 on Thursday 11 June 2026, 19:00 CET
-
Read chapter 28:
https://craftinginterpreters.com/methods-and-initializers.html
-
do the challenges of the chapter
We review this work on Review Meeting 28 on Thursday 25 June 2026, 19:00 CET
-
Read chapter 29:
https://craftinginterpreters.com/superclasses.html
-
do the challenges of the chapter
We review this work on Review Meeting 29 on Thursday 09 July 2026, 19:00 CET
-
Read chapter 30:
https://craftinginterpreters.com/optimization.html
-
do the challenges of the chapter
We review this work on Review Meeting 30 on Thursday 27 August 2026, 19:00 CET