# Compilers and Interpreters

## Books

* [Build Your Own Lisp](https://buildyourownlisp.com) by *Daniel Holden*
* [Crafting Interpreters](http://craftinginterpreters.com) by *Robert Nystrom*
* [Creating the Bolt Compiler](https://mukulrathi.co.uk/create-your-own-programming-language/intro-to-compiler) by *Mukul Rathi*
* [How Clang Compiles a Function](https://blog.regehr.org/archives/1605) by *John Regehr*
* [How LLVM Optimizes a Function](https://blog.regehr.org/archives/1603) by *John Regehr*
* [Let's Build a Compiler](https://xmonader.github.io/letsbuildacompiler-pretty) by *Jack Crenshaw*
* **Let's Write a Compiler** by *Brian Robert Callahan*
  * [Part 1: Introduction, selecting a language, and doing some planning](https://briancallahan.net/blog/20210814.html)
  * [Part 2: A lexer](https://briancallahan.net/blog/20210815.html)
  * [Part 3: A parser](https://briancallahan.net/blog/20210816.html)
  * [Part 4: Testing](https://briancallahan.net/blog/20210817.html)
  * [Part 5: A code generator](https://briancallahan.net/blog/20210818.html)
  * [Part 6: Input and output](https://briancallahan.net/blog/20210819.html)
  * [Part 7: Arrays](https://briancallahan.net/blog/20210822.html)
  * [Part 8: Strings, forward references, and conclusion](https://briancallahan.net/blog/20210826.html)
* [Make A Language](https://arzg.github.io/lang) - A series about making a programming language called *Eldiro* using the *Rust* programming language.
