3 ms·
Ask HN: What are the best resources to learn about compilers?
- Someone 8y agoDepends on what you want to learn. Structure and interpretation of computer programs is good for a high-level view of what a compiler does, but it compiles a lisp-like language, so it won’t learn you much about parsing or about generating good error messages when given syntactically or semantically incorrect programs (typically more work than parsing correct programs), and it compiles to some abstract ‘instruction set’, so it won’t be worthwhile if you want to know how to wring maximum performance out of any specific CPU.
- sloaken 8y agoAssuming you want to know this to make your own programming language... Step one is to learn about BNF grammers. When I was in school we used a book called Princples of Compiler Design. I felt this was an excellent bok at the time. It taught me a lot about how toprogram well.
- theomega 8y agoI can recommend the book „Compilers: Principles, Techniques and Tools“ [often called „Dragon Book“]. It explains from the basics with all the theory how to write a Leser, parser and much more features. It is one of the few books I bought after university. https://en.m.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools https://en.m.wikipedia.org/wiki/Compilers:_Principles,_Techn...
- neonbat 8y agothanks this looks good.
- segmondy 8y agoa college compiler class
- neonbat 8y agodone it ;)
- Chyzwar 8y agohttps://github.com/aalhour/awesome-compilers https://github.com/aalhour/awesome-compilers
- SamReidHughes 8y agoThis book is not completionist but instead it's to the point and avoids wasting your time: https://www.amazon.com/gp/aw/d/155558179X/ https://www.amazon.com/gp/aw/d/155558179X/ [Edit: it's Building an Optimizing Compiler by Bob Morgan.] That's assuming you don't want to waste your time reading about parsing, type checking, or serializing an AST into some form of assembly, the parts of a compiler which just aren't that interesting.