<story><title>Turing Award goes to Aho and Ullman</title><url>https://www.nytimes.com/2021/03/31/technology/turing-award-aho-ullman.html</url></story><parent_chain><item><author>cxr</author><text>It was just a few days ago when I mentioned how often I see the dragon book held up as a punching bag.  It seems that at some point the book, along with K&amp;amp;R, have become the target for unsubstantiated criticism.  I&amp;#x27;ve pressed for details, and I&amp;#x27;ve seen others do the same, but it never ends in anything concrete—just an implicit appeal to the new conventional wisdom that they do more harm than good.  Reminds me of how &amp;quot;truth&amp;quot; gets synthesized on Reddit.&lt;p&gt;Here&amp;#x27;s a counterexample: Russ Cox has a series on regular expressions, beginning with Regular Expression Matching Can Be Simple And Fast &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swtch.com&amp;#x2F;~rsc&amp;#x2F;regexp&amp;#x2F;regexp1.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;swtch.com&amp;#x2F;~rsc&amp;#x2F;regexp&amp;#x2F;regexp1.html&lt;/a&gt;&amp;gt;.  In the last several years, it has become very well-received.  In it, he lays out the case for Thompson NFAs, and also laments in some places about how the approach is not more widely known, having become a sort of lost knowledge.  (See also Jonathan Blow&amp;#x27;s &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=ZSRHeXYDLko&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=ZSRHeXYDLko&lt;/a&gt;&amp;gt;.)  For all the criticism of the dragon book, though, you&amp;#x27;d think that would mean enough people have read it that someone would have pointed out that Thompson is cited in Chapter 3, where his approach is described in some detail.&lt;p&gt;I think that what&amp;#x27;s actually going on is that, like The Art Of Computer Programming, the dragon book is widely referenced and rarely read.  Now, enter the 21st century meme factory.&lt;p&gt;Having said that, the most recent comment I saw that was being casually dismissive of the dragon book—ironically for its &amp;quot;second-rate methods&amp;quot; that have &amp;quot;held back&amp;quot; compiler development—did motivate me into digging the book out, which itself led to me to spending an hour or so chasing down the source of McCarthy&amp;#x27;s &amp;quot;ho, ho, you&amp;#x27;re confusing theory with practice&amp;quot; quip, since the origin story of Lisp&amp;#x27;s eval is also told in Chapter 11 of the dragon book. &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hypothes.is&amp;#x2F;a&amp;#x2F;pQs39pAhEeupnAuO5qfOeQ&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;hypothes.is&amp;#x2F;a&amp;#x2F;pQs39pAhEeupnAuO5qfOeQ&lt;/a&gt;&amp;gt;</text></item><item><author>jonstewart</author><text>I never took a compilers course in college and came to regret that. Ten years later I started reading the Dragon Book, and realized how I could trivially modify the NFA regular expression search algorithm to solve a problem I’d seen in digital forensics and eDiscovery. The writing is extremely clear and easy to follow, and I now tell all interns to be sure to take a compilers course before they graduate. Well-earned!</text></item></parent_chain><comment><author>kingaillas</author><text>As others noted, the Dragon Book spends far too much time on parsing, and not nearly enough on optimizations. To be fair, the first edition of the book is from 1986. It looks like the 2nd edition (2006) adds 3 chapters on data flow analysis, parallelization. I don&amp;#x27;t happen to have that version of the book so I don&amp;#x27;t know how good the material is.&lt;p&gt;I took compilers in grad school in the early 90&amp;#x27;s. Even then, we mostly skipped parsing because that was considered covered in another class (Theory of Computation, a class that covered regular expression, finite automata, Turing machines, P vs NP, those sorts of topics).&lt;p&gt;The professor spent as much time as he could on optimizations, since that was his research focus. He then went onto write his own compiler book (Engineering a Compiler; Cooper &amp;amp; Torczon) so you can compare the table of contents (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.elsevier.com&amp;#x2F;books&amp;#x2F;engineering-a-compiler&amp;#x2F;cooper&amp;#x2F;978-0-12-088478-0&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.elsevier.com&amp;#x2F;books&amp;#x2F;engineering-a-compiler&amp;#x2F;cooper...&lt;/a&gt;) and see what current compiler researchers feel are important topics to cover in a textbook.&lt;p&gt;Not throwing the Dragon Book under the bus, but it probably is in the &amp;quot;cited widely but rarely read&amp;quot; category as you have noted, just from its position as being first&amp;#x2F;early.&lt;p&gt;An anecdote from me - I had the occasion to write a parser for a work project a few years ago. Rather than reach for flex&amp;#x2F;bison or any theory I had from compiler courses... I went with the new-to-me method of a parser combinator. This was awesome and I might even describe as fun. Granted the target language I was parsing was much simpler than a programming language, but I hope that is covered in today&amp;#x27;s compilers courses. I remember really tedious parsing homework problems back in the day.</text></comment>
<story><title>Turing Award goes to Aho and Ullman</title><url>https://www.nytimes.com/2021/03/31/technology/turing-award-aho-ullman.html</url></story><parent_chain><item><author>cxr</author><text>It was just a few days ago when I mentioned how often I see the dragon book held up as a punching bag.  It seems that at some point the book, along with K&amp;amp;R, have become the target for unsubstantiated criticism.  I&amp;#x27;ve pressed for details, and I&amp;#x27;ve seen others do the same, but it never ends in anything concrete—just an implicit appeal to the new conventional wisdom that they do more harm than good.  Reminds me of how &amp;quot;truth&amp;quot; gets synthesized on Reddit.&lt;p&gt;Here&amp;#x27;s a counterexample: Russ Cox has a series on regular expressions, beginning with Regular Expression Matching Can Be Simple And Fast &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;swtch.com&amp;#x2F;~rsc&amp;#x2F;regexp&amp;#x2F;regexp1.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;swtch.com&amp;#x2F;~rsc&amp;#x2F;regexp&amp;#x2F;regexp1.html&lt;/a&gt;&amp;gt;.  In the last several years, it has become very well-received.  In it, he lays out the case for Thompson NFAs, and also laments in some places about how the approach is not more widely known, having become a sort of lost knowledge.  (See also Jonathan Blow&amp;#x27;s &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=ZSRHeXYDLko&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=ZSRHeXYDLko&lt;/a&gt;&amp;gt;.)  For all the criticism of the dragon book, though, you&amp;#x27;d think that would mean enough people have read it that someone would have pointed out that Thompson is cited in Chapter 3, where his approach is described in some detail.&lt;p&gt;I think that what&amp;#x27;s actually going on is that, like The Art Of Computer Programming, the dragon book is widely referenced and rarely read.  Now, enter the 21st century meme factory.&lt;p&gt;Having said that, the most recent comment I saw that was being casually dismissive of the dragon book—ironically for its &amp;quot;second-rate methods&amp;quot; that have &amp;quot;held back&amp;quot; compiler development—did motivate me into digging the book out, which itself led to me to spending an hour or so chasing down the source of McCarthy&amp;#x27;s &amp;quot;ho, ho, you&amp;#x27;re confusing theory with practice&amp;quot; quip, since the origin story of Lisp&amp;#x27;s eval is also told in Chapter 11 of the dragon book. &amp;lt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hypothes.is&amp;#x2F;a&amp;#x2F;pQs39pAhEeupnAuO5qfOeQ&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;hypothes.is&amp;#x2F;a&amp;#x2F;pQs39pAhEeupnAuO5qfOeQ&lt;/a&gt;&amp;gt;</text></item><item><author>jonstewart</author><text>I never took a compilers course in college and came to regret that. Ten years later I started reading the Dragon Book, and realized how I could trivially modify the NFA regular expression search algorithm to solve a problem I’d seen in digital forensics and eDiscovery. The writing is extremely clear and easy to follow, and I now tell all interns to be sure to take a compilers course before they graduate. Well-earned!</text></item></parent_chain><comment><author>jnwatson</author><text>I took a compilers class around the dragon book.  I think the valid criticism is the sequence of the book.  An undergraduate compiler class can only cover perhaps half the book.&lt;p&gt;IMHO, the number of students that would benefit from learning about AST transformation and code gen vastly outnumbers the folks that would benefit from learning about finite automata transformation (and I took a dedicated course in that).&lt;p&gt;There simply aren’t that many folks working on regex engines.</text></comment>