Cover of Principles of program analysis

Principles of program analysis

by Flemming Nielson, Hanne Riis Nielson, Chris Hankin · first published 1999

15mentions
7recommended by
11HN commenters
2011–2024first – last mentioned

64% recommend27% neutral9% critical

Why HN recommends it

A rigorous, formal treatment of static program analysis and optimization on a general mathematical framework. It serves as a theory reference for compiler work and offers depth for readers seeking a thorough foundation.

Summarised by Claude from recommending comments

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

30 2007: 0 mentions2008: 0 mentions2009: 0 mentions2010: 0 mentions2011: 1 mention2012: 0 mentions2013: 2 mentions2014: 0 mentions2015: 0 mentions2016: 0 mentions2017: 2 mentions2018: 0 mentions2019: 1 mention2020: 1 mention2021: 1 mention2022: 3 mentions2023: 0 mentions2024: 2 mentions2025: 0 mentions2026: 0 mentions200720172026

What Hacker News says

  • aleclm · Sep 10, 2022 · Recommends

    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.

    on “Ask HN: Which books do you consider real gems in your field of work/study?” ↗
  • fmap · Jun 13, 2011 · Recommends

    …exception can never happen, the check will be removed. As for the "simple" example of testing "y == 0", this is actually already undecidable. If you are interested, you might have a look at Nielson's "Principles of Program Analysis", I think that this particular example (undecidability of MOP Constant Propagation) is worked out there. Also, the book is a nice introduction to the subject.

    on “Whiley, a programming language with extended static checking” ↗
  • timtadh · Apr 17, 2013 · Recommends

    …the author page it looks like the OPs book has not been updated so keep in mind that it is the state of the field as of the 80s. The work by Nielson and Nielson is fairly recent. I would also suggest "Principles of Program Analysis" for a follow up book. http://www.amazon.com/Principles-Program-Analysis-Flemming-N...

    on “Denotational Semantics: A Methodology for Language Development [pdf]” ↗
  • kushti · Dec 28, 2013 · Recommends

    "Types and Programming Languages" by Benjamin C. Pierce "Principles of Program Analysis" by Nielson, Nielson, Hankin

    on “Ask HN: What book changed your life in 2013?” ↗
  • nextos · Jan 16, 2017 · Recommends

    Try Principles of Program Analysis by Nielson & Nielson. Uber hardcore and beautiful approaches to static analysis and optimization, on a very general mathematical framework.

    on “Ask HN: What's the best computer science book you've read recently?” ↗
  • tom_mellior · Aug 25, 2017 · Recommends

    …> Does anyone know of code that makes clear what is involved in def-use for a variable without saying "this is an exercise for the reader" ? It's not code, but chapter 2 of Nielson/Nielson/Hankin's Principles of Program Analysis discusses how to do this. See accompanying slides on the book's website: http://www.imm.dtu.dk/~hrni/PPA/ppasup2004.html In a sense, this must be an exercise for the reader, since if you are working…

    on “How to Write Your Own Compiler (2009)” ↗
  • timtadh · Feb 1, 2013 · Recommends

    …combination of: Dragon Book, Muchnicks: Advanced Compiler Design, and Semantics with Applications. I have been meaning to pick up a copy of Engineering a Compiler. (I should also note I am currently reading: Principles of Program Analysis, it is a good book focusing on just theory. Read Semantics with Applications first it is basically the follow up) A guess my point is this: I have learned a great deal from the Dragon book. I think it…

    on “C++ Grandmaster Certification” ↗
  • int0x80 · Aug 17, 2022 · Recommends

    "Principles of Program Analysis" covers the subject very well. It's not an easy or beginner book because it's very formal, but very complete and with plenty of examples.

    on “Programming breakthroughs we need” ↗
  • chas · May 4, 2020 · Mentions

    This article gets more into actual analysis of program state and execution: http://matt.might.net/articles/intro-static-analysis/ If you want to go deeper, Principles of Program Analysis is a popular reference: Principles of Program Analysis https://www.amazon.com/dp/3540654100/

    on “A hands-on introduction to static code analysis” ↗
  • server_bot · Oct 11, 2019 · Mentions

    …recommend the following resources for learning: Accessible (at least compared to more formal texts) lecture notes: http://www.cs.cmu.edu/~aldrich/courses/17-355-18sp/ Free book that's more readable than "Principles of Program Analysis" by Nielson et al: https://cs.au.dk/~amoeller/spa/ Some practical resources for binary PA: https://reversing.io/resources/

    on “Ask HN: Good Discussion Forums for Static Program Analysis?” ↗
  • jisbruzzi · Nov 28, 2022 · Critical

    Thank you so much for sharing this! I've been going through principles of Program Analysis (Nielson-Nielson-Hankin) and understanding 0 of it , this seems much more digestible and up to date. I'm teaching assistant for a compilers course at University of Buenos Aires.

    on “Static Program Analysis” ↗
  • …expression optimization during compilation. [3] G. A. Kildall, A Unified Approach to Global Program Optimization. [4] https://en.wikipedia.org/wiki/Gary_Kildall [5] F. Nielson, H. Riis Nielson, C. Hankin, Principles of Program Analysis. [6] X. Rival, K. Yi, Introduction to Static Analysis: An Abstract Interpretation Perspective. [7] P. Cousot, R. Cousot, Abstract interpretation: A unified lattice model for static analysis of programs…

    on “Dataflow Analyses and Compiler Optimizations That Use Them, for Free” ↗
  • chas · May 5, 2020 · Mentions

    Principles of Program Analysis isn't the Cousot's text, but it does make significant use of abstract math. In particular, it uses tools from order theory[0] to describe many program analysis algorithms as finding fixpoints of functions…

    on “A hands-on introduction to static code analysis” ↗
  • nextos · Mar 3, 2024 · Mentions

    The main strategy is to build sound but imperfect analyzers, i.e. analyzers that never raise false negatives but that may raise some false positives. See §1.6 in [1], a simplified version of the classic Principles of Program Analysis. Good analyzers are practical, rarely raising false positives for well-written programs. The Astreé analyzer reported zero false positives for the 1 MLOC fly-by-wire A380 code. Another complementary…

    on “Learning Theory from First Principles [pdf]” ↗
  • tom_mellior · Apr 24, 2021 · Mentions

    …modulo 4" and/or "known bits", like "x is in [10, 20], and I know that (counting from the LSB) its bit 2 is 0 and bit 3 is 1". Personally I learned about data flow analysis in a university course based on Principles of Program Analysis: https://www.springer.com/gp/book/9783540654100. It's a book that goes into a lot of mathematical depth but not much breadth of analyses, and it doesn't handle data flow analysis on SSA form. Then I learned…

    on “Resources for Amateur Compiler Writers” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help