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
https://git.2li.ch/Nebucatnetzer/crafting-interpreters
Features:
- Nix and Nix Flakes