diff --git a/README.md b/README.md index 1bd4a10..e519b3a 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ * [**C**: _Writing a Simple Garbage Collector in C_](http://maplant.com/gc.html) * [**C**: _C interpreter that interprets itself._](https://github.com/lotabout/write-a-C-interpreter) * [**C**: _A C & x86 version of the "Let's Build a Compiler" by Jack Crenshaw_](https://github.com/lotabout/Let-s-build-a-compiler) +* [**C**: _Crafting Interpreters: A Bytecode Virtual Machine_](http://craftinginterpreters.com/a-bytecode-virtual-machine.html) * [**C++**: _Writing Your Own Toy Compiler Using Flex_](https://gnuu.org/2009/09/18/writing-your-own-toy-compiler/) * [**C++**: _How to Create a Compiler_](https://www.youtube.com/watch?v=eF9qWbuQLuw) [video] * [**C++**: _Kaleidoscope: Implementing a Language with LLVM_](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html) @@ -291,7 +292,7 @@ * [**Haskell**: _Write You a Haskell_](http://dev.stephendiehl.com/fun/) * [**Haskell**: _Write Yourself a Scheme in 48 Hours_](https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) * [**Haskell**: _Write You A Scheme_](https://www.wespiser.com/writings/wyas/home.html) -* [**Java**: _Crafting interpreters: A handbook for making programming languages_](http://www.craftinginterpreters.com/) +* [**Java**: _Crafting Interpreters: A Tree-Walk Interpreter_](http://craftinginterpreters.com/a-tree-walk-interpreter.html) * [**Java**: _Creating JVM Language_](http://jakubdziworski.github.io/categories.html#Enkel-ref) * [**JavaScript**: _The Super Tiny Compiler_](https://github.com/jamiebuilds/the-super-tiny-compiler) * [**JavaScript**: _The Super Tiny Interpreter_](https://github.com/keyanzhang/the-super-tiny-interpreter)