Toad Makes a Language!

This book documents the journey of Toad ( ) in developing a programming language named Toad 1 1 Of course Toad names their programming language after themselves... .

Like every journey ever, it is done so step-by-step: Each chapter concludes with a runnable compiler. The final product is an optimising compiler from Toad to RISCV Assembly.


The journey will teach you standard vocabularly of the community and enable understanding of real research papers. You will learn how to implement register allocation, pattern matching, bidirectional type checking, program analyzers, and much more!


The book is freely available here

One caveat!

The book is not finished. If you want to stay updated, I'd love to tell you to just sign up to my mailing list, but I don't have one. So, instead, join the Programming Languages Discord server here or contact me personally by some other means.

Who am I?

Hi, I'm Matthis 'dasnacl' Kruse. I've got an obsession with compilers, much like mountain climbers obsess about mountains. While I also do enjoy mountain climbing, compilers is what pays my bills.

If you want to get in touch, drop me a message on discord (dasnacl), find me on mastodon (@dasnacl@types.pl), or just contact me via email to this site at dasnacl.de.