Hacker News new | past | comments | ask | show | jobs | submit login

Can anyone recommend other books similar to this one?

Having done the Nand2Tetris course and started the Ray Tracer Challenge book I find I really like these books that guide you through a pretty complex project.

It helps you learn by doing while at the same time preventing you from falling into bad practices or getting overwhelmed.




I haven't worked through it (yet!), but read parts of and only heard good things about Bob Nystrom's Crafting Interpreters [0]: http://craftinginterpreters.com/

If you like Scheme/Racket, I can also recommend Beautiful Racket [1]. That was quite a dose for my macro-loving brain.

Then I also recommend this "Let's Build A Compiler" series of blogposts [2] that roughly follows Abdulaziz Ghuloum's relatively famous (amongst fellow compiler fans) paper "An Incremental Approach to Compiler Construction" [3]. I've followed that series and paper for the past three months and built a Scheme to x86 compiler in Scheme. That was a lot of fun!

[0]: http://craftinginterpreters.com/ [1]: https://beautifulracket.com/ [2]: https://generalproblem.net/lets_build_a_compiler/01-starting... [3]: http://lambda-the-ultimate.org/node/1752


Crafting Interpreters by Bob Nystrom is amazing:

https://www.craftinginterpreters.com/

Only caveat is that the book is not done, yet, but there is already a ton of content.


My colleague is working on Making a RISC-V Operating System using Rust. It is a free online book.

http://osblog.stephenmarz.com/index.html


https://www.itu.dk/people/sestoft/plc/

Sestoft is a very clear writer, and F# is a better language than most for writing interpreters or compilers.


How is the quality of F# in that book? I've been itching to make the leap and this seems like a good way to do that, but I'd feel more confident if I knew that Sestoft's demonstration of the language set a good example.


I've never done F# professionally so I can't speak to how idiomatic it is, but it gets the job done from a learning point of view.


There's also https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...

Learning Haskell via writing a Scheme interpreter.

As you say you've been through a couple of these books/guides before, I just wondered how you would characterise your learning experience, in terms of how much you think you've learned, whether you would have learned the same via other means and so on?


Not a book, but an interesting self-guided course and apparently a great way to pick up a new language: Make A Lisp [0],[1],[2]

Basically, work through building a lisp interpreter in any given language (C, Java,...bash, vimscript) in 10 steps. Each step is backed by tests, and these tests help to guide you through the process. Very cool.

[0]http://kanaka.github.io/lambdaconf/

[1]https://github.com/kanaka/mal

[2]https://www.youtube.com/watch?v=jVhupfthTEk


I'd recommend this tutorial https://ruslanspivak.com/lsbasi-part1/. It's Python.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: