3 ms·
Wow, 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 th
by nextos 4y ago
Wow, 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.