Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Compilers, principles, techniques, and tools

    Compilers, principles, techniques, and tools

    Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman · 1986

    This book covers topics related to the functionality and design of compilers, including: • Compiler structure • Lexical analysis (including regular expressions and finite automata) • Syntax analysis (including context-free grammars, LL parsers, bottom-up parsers, and LR parsers) • Syntax-directed translation • Type checking (including type conversions and polymorphism) • Run-time environment (including parameter passing, symbol tables, and storage allocation) • Code generation (including intermediate code generation) • Code optimization

    Computer ScienceProgramming
    Open LibraryAmazon
    Stats for nerds
    195recommend
    958mentions
    659people
    2007–2026years
    25% recommend53% neutral22% critical

    Mentions per year

    20072009201120132015201720192021202320252026

    What Hacker News says

    1. kazinatorJul 2026
      > the techniques in the Dragon Book for writing compilers are the real magic.

      Can confirm; got a few hints from the 1988 edition when working on the TXR Lisp compiler.

      Oh, and also when implementing regexes, not to forget!

      However, the Lisp compiler has its own magics that are not exactly covered in the Dragon Book. Some really nice way of doing things.

      thread
    2. PaulHouleJun 2026
      My main complaint is that React doesn't handle highly dynamic situations. Think of how tools like photoshop or programming IDEs have tons of views and windows and property sheets and stuff and manage to update the right parts of the UI when things change. React on the other hand makes a structural link between the component tree and how state propagates.

      Specifically I wrote a bunch of React components for making little biosignals applications that can (say) show two people's heartrate from bluetooth LE and show my breathing based on a strap i am wearing and another person's breathing based on a $20 radar from China.

      I can pretty easily snap together the components and the system that feeds the state to the components by writing code. It works great, it's not that hard to do, it looks great.

      But: I really wish I could make something where I could drag and drop display and data acquisition and processing components like LabView. Actually I know a lot about how to do the dynamic processing (Hint: read the Dragon book, not On Lisp) but React doesn't support dynamically assembled components... But I know Javascript systems can because I was writing them 2005-2010 back when browsers didn't have async and all the great affordances they offer now.

      thread
    3. quotemstrMay 2026
      There are books about languages, and then there are books about timeless truths. The former? Toilet paper. The latter? Treasures. Worth reading:

      - Okasaki, Purely Functional Data Structures https://www.cs.cmu.edu/~rwh/students/okasaki.pdf

      - The Garbage Collection Handbook https://gchandbook.org/

      - The Dragon Book - https://faculty.sist.shanghaitech.edu.cn/faculty/songfu/cav/... (yes, it's old, but I still like the end-to-end, all-in-one intro)

      - Windows Internals - https://learn.microsoft.com/en-us/sysinternals/resources/win...

      - Structure and Interpretation of Computer Programs - https://web.mit.edu/6.001/6.037/sicp.pdf

      - Concurrency Control and Recovery in Database Systems - https://www.microsoft.com/en-us/research/people/philbe/book/

      - Crafting Interpreters - https://craftinginterpreters.com/

      - What Every Programmer Needs to Know About Memory - https://people.freebsd.org/~lstewart/articles/cpumemory.pdf (the best thing Ulrich Drepper ever did)

      - An Introduction to Modern Cryptography - https://eclass.uniwa.gr/modules/document/file.php/CSCYB105/R...

      A good programming book gets better with age. If it's really about ideas and uses this or that technology for exposition, so much the better: the more remote in time the grammar of the examples, the more you can focus on the ideas. SICP being in Scheme is an advantage because you don't know Scheme yet; Windows Internals being about Windows teaches you generally good lessons in OS design by forcing you to contemplate a system alien to the Unix you probably know better.

      It's shocking how many of these seminal books are available for free and how few people read them. Yes, yes, you can get the same information from an LLM, but an LLM won't give you the guided tour through the whole rugged ideas-space and show you a reasonable peak. Order, emphasis, and expository style build intuition, so books (especially old ones) are worth reading.

      thread
    4. dbcurtisApr 2026
      I was just going into the second quarter of compiler design when the dragon book came out. My copy was still literally “hot of the press” — still warm from the ink baking ovens. It was worlds better that anything else available at the time.
      thread
    5. jll29Apr 2026
      *Donald Knute -> Donald Ervin Knuth is the author of the book "The Art of Computer Programming" (in progress for a couple of decades, currently volume 4c is being written). It is quite advanced, and it will likely not cover compilers anymore (Addison-Wesley had commissioned a compiler book from Knuth when he was a doctoral candidate, now he is retired and has stated his goal for the series has changed).

      I disagree with the author's point: the "Dragon book"'s ("Compilers: Principles, Techniques, and Tools" by Aho et al.) Chapter 2 is a self-sufficient introduction into compilers from end to end, and it can be read on its own, ignoring the rest of the excellent book.

      Another fantastic intro to compiler writing is the short little book "Compilers" by Niklaus Wirth, which explains and contains the surprisingly short source code of a complete compiler (the whole book is highly understandable - pristine clarity, really) and all in <100 pages total (99).

      (I learned enough from these two sources to write a compiler in high school.)

      thread
    6. tovejApr 2026
      I started with the dragon book, and I found it to be a good introductory text.

      A lot of people say the dragon book is difficult, so I suppose there must be something there. But I don't see what it is, I thought it was quite accessible.

      I'm curious, what parts/aspects of the dragon book make it difficult to start with?

      thread

    Related

    Cover of Principles of compiler design
    2009–2025

    Principles of compiler design

    Alfred V. Aho
    8 recommend · 19
    Cover of Advanced compiler design and implementation
    2008–2025

    Advanced compiler design and implementation

    Steven S. Muchnick
    13 recommend · 25
    Cover of Engineering a compiler
    2007–2026

    Engineering a compiler

    Keith D. Cooper
    39 recommend · 91
    Cover of Introduction to Algorithms
    2007–2026

    Introduction to Algorithms

    Thomas H. Cormen
    274 recommend · 880
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of Structure and Interpretation of Computer Programs
    2007–2026

    Structure and Interpretation of Computer Programs

    Harold Abelson
    347 recommend · 761
    Cover of The C Programming Language
    2007–2026

    The C Programming Language

    Brian W. Kernighan
    246 recommend · 604
    Cover of Code Complete
    2007–2026

    Code Complete

    Steve McConnell
    393 recommend · 894