4 ms·
For compiler theory, "Principles of Program Analysis" (by Nielson, Nielson, Hankin). It is so foundational to what we do at rev.ng, that we gift a physical cop
by aleclm 4y ago
For compiler theory, "Principles of Program Analysis" (by Nielson, Nielson, Hankin).
It is so foundational to what we do at rev.ng, that we gift a physical copy of the book to every interviewee, even if they don't pass.
- f1shy 4y agoHi, how does the book compares to the dragon book?
- pca006132 4y agoThey are different. This book is about static analysis which is not discussed in-depth in the dragon book.
- aleclm 4y agoCompiler theory is a wide topic, here the focus is on static analysis, while the Dragon Book is more wide-spectrum. However, I can tell you that this book is so much better than the Muchnick (Advanced Compiler Design and Implementation). The way data-flow analysis is explained in Muchnick sucks, while in POPA it's vertical but once you get over it, everything clicks and you are able to design new analyses in a sound way.
- nextos 4y agoWow, I never expected Nielson & Nielson to be mentioned here. It's one of my favorite books, I have referred to it in some of my past comments, and certainly the best static analysis textbook out there. I actually took several courses from the authors some years back, and implemented most of the book for a not-so-simple imperative language, including e.g. abstract interpretation for detecting out-of-bounds array accesses. The book is a bit advanced unless you are well seasoned in the basics of abstract algebra and interpreter / compiler construction. Most fellow students struggled a lot. Hence, the authors have written a prequel [1], which is a bit simpler and also uses Datalog to get going faster. [1] https://arxiv.org/pdf/2012.10086.pdf https://arxiv.org/pdf/2012.10086.pdf
- aleclm 4y ago> certainly the best static analysis textbook out there During my PhD I really felt stupid reading Muchnick and not getting data-flow analysis. Nielson & Nielson literally saved my PhD and enabled the creation of the company. I'm so grateful. Do you have any contact? It'd be cool to invite one of the authors to our weekly internal meetings. > the authors have written a prequel Oh crap, that's great! Honestly, we use Chapter 2 a lot, it already provides so much value. And in fact, you could write a whole book only about that. Here's our C++ implementation of MFP: https://github.com/revng/revng/blob/develop/include/revng/MFP/MFP.h#L66 Having infinite time, it'd be nice to rewrite some LLVM analyses using it. We joke saying that we'll open a new company when we start using Chapter 3 effectively. :) Btw, if you're in a CEST-friendly time zone and are interested in what we do, drop us an e-mail :)
- nextos 4y agoI have sent you their contact details to your corporate email.