fjfaase 22 minutes ago

It surprises that they are still teaching parsing techniques that are based on limitation from 40 years ago, when memory was limited and you had to parse a file one character at the time. Why not start with a back-tracking recursive descent parser on a file stored in memory? Can be made efficient with some simple caching. In an introduction course there is no need to aim for maximum performance if parsing a 10k lines program takes less than a second.

UncleOxidant 8 hours ago

The Essentials of Compilation book mentioned is only ~$24 on Amazon. Usually books like this are much more expensive. I ordered a copy.

  • almostgotcaught 8 hours ago

    looks like a fun book but just be forewarned real compiler engineering is nothing like what's covered there.

    • kryptiskt 2 hours ago

      I'm knee deep in clang at the moment and I'm so fed up with real compiler engineering. Give me Chez Scheme and the nanopass compiler any day. That is so much better than the big ball of mud that goes into a "real" compiler.

    • anta40 7 hours ago

      Any recommendation for a more realistic book?

      I think hacking GCC/LLVM can be pretty challenging, but hey they are real, production-grade compilers and not just typical academic projects.

      • almostgotcaught 7 hours ago

        there are no good modern compiler books - everything that's been written down pales in comparison to what GCC/LLVM really involve. recently i found Engineering a Compiler by Cooper and Torczon when reviewing/prepping for interviews - it wasn't bad. also there's now LLVM Code Generation by Quentin Colombet but that's basically a code walk-through of LLVM (it doesn't cover any of the algos). and it was probably out of the date the second it got published lol (not really but maybe). the truth is that trying to learn how to build a compiler from a single book is like trying to learn how to build a skyscraper from a single book.

        • sph 3 hours ago

          > the truth is that trying to learn how to build a compiler from a single book

          I think you conflate “learning to build a compiler for a toy language” with “being effective at working on a modern optimizing compiler suite like GCC/LLVM”

          The book is perfectly fine for the first use case, and never claims to touch upon the latter.

        • kmicinski 6 hours ago

          Respectfully, I think what you mean is that there are no books which give you the experience of hacking on LLVM for several years.

        • yu3zhou4 6 hours ago

          Is Dragon book still relevant? Do you recommend any other learning resources other than reading the source and contributing to llvm?

          • f1shy 2 hours ago

            IMHO absolutely. The basics of lexer and parser are still there. Some of the optimizations are also relevant. You just cannot expect to read the book and be able to write GCC or LLVM from scratch(1).

            For learning deeper about other advanced topics there is:

            https://www.cs.cornell.edu/courses/cs6120/2025fa/

            and

            https://mcyoung.xyz/2025/10/21/ssa-1/

            So maybe writing a compiler with exactly one FE (for a simple language) and one BE (for a simple architecture), with say 80% of the optimizations could be a doable project.

            (1) We should define what we mean by that, because there are thousands of front-ends and back-ends.

          • kronnpp 2 hours ago

            I taught in the past and still like the trilogy of books

            > Modern Compiler Implementation by Andrew W. Appel

            It comes in three flavors C, ML (Meta Language), and Java

            https://www.cs.princeton.edu/~appel/modern/

            Writing a compiler in Standard ML is as natural as writing a grammar and denotational semantics.

            Compiler writing is becoming an extinct art.

          • anta40 6 hours ago

            I heard that new volume is updated with newer stuffs like data flow analysis, garbage collection, etc. Anyway the book doesn't teach you how to build a basic working compiler, so need to consult another materials.

            Try Andrew Appel's "Modern Compiler implementation in Java/C/ML" or Writing a C Compiler (https://norasandler.com/book) which is much more recent.

            Eventually, you'd want to hack GCC/LLVM because they are production-grade compilers.

    • fragmede 7 hours ago

      Real compiler engineering covers a lot of ground. This book is an intro to it, not the whole everything. No need to posture about it.

AdityaSanthosh 8 hours ago

Hi, seems like an interesting course. I haven't studied compilers in my undergrad( I'm an electronics student) but I have been working as a programmer who studied c and bit of low level languages. Is there any prerequisite compiler knowledge required for this course?

  • ktimespi 8 hours ago

    The only prerequisite here is probably Racket, to follow along with the book

evnix 2 hours ago

Most of these compiler projects and books would be 100x more popular and accessible if they were in Javascript

  • wiseowise an hour ago

    Just use LLM to translate example to whatever language you want.

    • derrida 10 minutes ago

      Now now, isn't that what a compiler does?