Crafting Interpreters is available in print
craftinginterpreters.com
craftinginterpreters.com
http://journal.stuffwithstuff.com/2021/07/29/640-pages-in-15...
Thank you!
> did you consciously decide to turn off tagged PDF
I did not. I did export an interactive PDF from InDesign and took care to make sure that the table of contents and internal links work, but I have zero experience in PDF accessibility. I'll take a look into it and see what I can figure out.
You and 99% of people who have ever produced a PDF file, I would guess. Which is why I wish InDesign would do the right thing by default. No big deal for this book since it's available in other formats, and I don't regret purchasing the PDF, but so many other books and documents are made available only as PDF.
[1] https://journal.stuffwithstuff.com/2020/04/05/crafting-craft...
I look forward to reading this!
But to pile in with everybody else, congratulations!
Step 4: ...
Congratulations on finally putting this project to rest.
This book has been a life saver during the pandemic, not only the world situation but I personally was a bit disappointed with my career. I was inspired by one of your posts where you mention that you were writing every single day for four years. I decided to use the same approach and I started reading the book and coding a bit every single day. I was able to finish it completely and I wrote two implementations of Lox. I just ordered a paper copy, from the PDF sample it seems it looks gorgeous!
Thank you very much for such a great contribution to the world!
Yes! It is the dumbest, weirdest life hack, but it seems to work for perfectionists like us.
https://www.youtube.com/watch?v=iN1MsCXkPSA
It's, like, comically time consuming. But also pretty satisfying.
https://www.staples.com/TOPS-Engineering-Computation-Pad-Gum...
As the saying goes, your books spark joy. Thank you.
OT: Do I need to purchase the pdf separately if I purchase the print book?
Can't wait to hear what you announce next.
Edit: I guess that’s here: https://github.com/munificent/craftinginterpreters/blob/mast...
https://github.com/munificent/craftinginterpreters/tree/mast...
And you absolutely should be proud of your PDF->PNG->Highlight diffs script. As someone who has kept excel files and PDFs in version control I knew exactly the feeling you were talking about. I got to that part and exclaimed out loud, "Damn cool!"
Hot tip for handling office file formats or anything that uses a ZIP container: just unzip them and commit that to the repo. It won't fix the issue mentioned of the authoring tool making seemingly arbitrary and unnecessary changes, nor will it give you nifty visual diffs, but it's better than shuffling binary blobs through your version control tools.
Actually, it should (precisely _because_ of Git's approach to storing blobs) but that's besides the point. Saving space had nothing to do with the motivation for the earlier comment.
> in fact it will probably use more
No.
This is great to hear. When I read about your build system in Crafting "Crafting Interpreters" <https://journal.stuffwithstuff.com/2020/04/05/crafting-craft...>, I had hopes that your next bugbite would be fleshing out half of a quasi-literate programming tool. For a compiler writer, who also happens to be writing a book, the circumstances and fit seem just too natural to avoid it.
I'm looking forward to diving into your Markdown package, too, and expect that it will be easy to port to JS. Nowadays, whenever I need a library for a JS project, my first choice is to check for a clean Dart, Haxe, or Java implementation that does what I want, with the intent of porting it, rather than disadvantaging myself by relying on whatever the NodeJS community has cobbled together and put on NPM. <https://news.ycombinator.com/item?id=24495646>
EDIT: There is a typo "CCS" in the blog post. Highlighted: <https://hyp.is/d2cCEPCLEeu7jSft-ex2Ug/journal.stuffwithstuff...>
Congrats on getting over the finish line, by the way. It's a huge accomplishment.
If you buy a print copy and email me some kind of confirmation, I'd be happy to send you the PDF or EPUB file.
The way you made your book(s), from making them available online for free to the excellent layout of the printed version, was a huge inspiration for me to write my own book. Thank you.
I like to think of it as "carbon capture representation" these days.
http://craftinginterpreters.com/optimization.html#where-to-n...
I have absolutely nothing planned after this. I plan to not have any plans for a while. :)
I started working on the second part (decided I'd do this one in Rust instead of C), but got distracted by other things and never got around to picking it up again. I look forward to getting back to it!
Thanks again, and congratulations on getting to this publishing stage!
https://ceronman.com/2021/07/22/my-experience-crafting-an-in...
After seeing this HN post yesterday, I bought your /Crafting Interpreters/ book to see if it could help me evolve my AST-walker into a threaded-interpreter (using GNU's computed goto-label extension.) I find your writing style to be just the right mix of humor and content to keep me engaged.
Keep writing, Bob!
I've skimmed the web version till the end, but thoroughly read half of it, still learned a lot. Especially the pragmatic approach to code generation via string concatenation. I went a bit further with a small dsl that also does string concatenation.
My C# and Rust implementations are half baked, but still I had a lot of fun doing them, and that's all that counts.
Can't wait to see Bob's next endeavor.
Recursive descent parsing and a hand-rolled lexer teaches grammars and general language design way better than other alternatives.
Sure, everyone should learn about LR parsers at some point. But I'd argue that outside a compiler class, knowing recursive descent is likely to be useful more often than knowing LR parsing.
But seriously congratulations! I'll happily spend my own money to support all the effort you put into this!
Knuth: The Art of Computer Programming
CLRS: Introduction to Algorithms
Strang: Introduction to Linear Algebra
H&P: Computer Architecture: A Quantitative Approach
and now I ordered yours, Bob! Just wanted to show my respect. When my crunch time is over at work I will answer the issue I opened on GitHub ;-)
I went through Part 1 towards the beginning of quarantine, and it spawned several really fun projects and I now feel like I have a basic level of skill writing parsers, which I've actually gotten to use a couple times at my day job.
I will say, I feel like it would be a lot harder to follow along with a physical print vs another window on my computer screen. But I may buy one anyway just to support the author.
Highly recommend!
I worked through the first half of the online book recently, and am excited to buy the print version and work through the rest of it. I can’t get over dead trees, and as fun as it was using the free online version (thanks munificent!), the paperback version will be even better.
The book sent me back to the college days where I remember doing similar things.
Can't wait to start working on the bytecode virtual machine.
It's really an excellent book.
https://github.com/munificent/craftinginterpreters/wiki/Lox-...
That means it's either not too hard to do yourself, or at the very least you can use their ports as a reference as you work through the book.
Thanks for the book by the way, I'm picking it up for the first time now
I was just wondering when I'll get to have a physical copy while I was working through chapter 8 in Crafting Interpreters. Thank you so much for your contribution.
Thanks, Bob. You did a wonderful job.
Also, I read the first few pages on Amazon and I'm sorry about Ginny. She looks like she was a good friend.
A) Being implemented in Java
and
B) Not having anything satisfying on types
I can't get excited about it. I know it's an uncommon opinion but there's so much missing it can't be a monograph/treatise.
https://github.com/munificent/craftinginterpreters/wiki/Lox-...