1. 6
  1. 3

    15/25 handouts and 7/19 lectures are spent on parsing, which seems – after a cursory glance – like a very unbalanced approach. I know parsing isn’t “solved”, but it seems like much of the current research and many of the interesting problems are in the later stages of the compiler. More advanced type systems, better code generation, etc.

    This is the Spring 2018 version, which doesn’t seem substantially different from the above linked 2012 version.

    1. 2

      Can you recommend a course or text that covers these other topics better?

      1. 3

        Yeah, see, I don’t know. I’m still Joe Schmoe newbie in this area. Things I’ve referenced in the past include:

        Also, a bit of a shameless plug for my own (admittedly very simple) resource on bytecode compilers. With any luck I’ll have a series following the Ghuloum paper soon…

        1. 2

          Appel’s Tiger book is in SML (not OCaml).

          I didn’t like it very much because it’s using ml-yacc.

          1. 1

            Ahhhh yes, you’re right. Well, you could substitute OCaml and Menhir!

            1. 1

              Or a recursive descent parser.

        2. 3

          Ooh, and how could I forget munificent’s book?

          1. 2

            This is also another good resource, but more about making fast runtimes.

            1. 2

              Thanks a lot for this link! This provides a lot of useful knowledge I was looking for a while!

            2. 2

              The slides seem to be insufficient to understand the topics – especially the parsing part. I’d hope there is a course script available for actual students.

              In general these kind of courses seem to spend

              • 80% of their time telling people “how to do X”
              • maybe 15% of the time on “why do X?”
              • rarely more than 5% on “should you even do X?”

              It’s kinda sad, but reflects the issues of this profession very well.

              Even parsing itself, which the least interesting and important piece of a compiler course, doesn’t ask the important question of “should we build languages that would give us this much trouble parsing?”.

              Popular example is “let’s assume we use <> for generics, what could possibly go wrong (ignoring the 20 years of examples of it going wrong)?”.