<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">[While walking 5 miles through the snow …]<br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Mar 9, 2025, at 9:03 PM, Douglas McIlroy <douglas.mcilroy@dartmouth.edu> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">> everyone should write for their first compiler in Pascal for a<br>> simple language and no cheating using YACC.  You need to write the whole<br>> thing if you want to understand how parsing really works.</div><div dir="ltr"><br></div><div>Yacc certainly makes it easier to write parsers for big grammars, but it's far from cheating. You need to know a lot more about parsing to use Yacc than you need to roll your own. </div><div><br></div><div>Hand parsing of a tiny grammar is almost a  necessary step on the way to understanding Yacc. But I think hand-building the whole parser for a compiler is unnecessary torture--like doing trigonometry with log tables.</div><div><br></div><div>Doug</div></div></div></div></div></div>
</div></blockquote><br></div><div>In 1971 compiler construction course at UT-Austin, we had to use CDC Fortran to build a compiler for a subset of Algol 60. Undergraduates used punch cards and RJE to the 6600/6400 shared by all but the privleged few.</div><div><br></div><div>Charlie</div><br><div>
<meta charset="UTF-8"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><div><span style="font-family: Menlo-Regular; font-size: 11px;">--</span><br style="font-family: Menlo-Regular; font-size: 11px;"><span style="font-family: Menlo-Regular; font-size: 11px;">voice: +1.512.784.7526       e-mail: </span><a href="mailto:sauer@technologists.com" style="font-family: Menlo-Regular; font-size: 11px;">sauer@technologists.com</a><span style="font-family: Menlo-Regular; font-size: 11px;">           </span></div><div><span style="font-family: Menlo-Regular; font-size: 11px;">fax: +1.512.346.5240         web: </span><a href="http://technologists.com/sauer/" style="font-family: Menlo-Regular; font-size: 11px;">https://technologists.com/sauer/</a></div><div><span style="font-family: Menlo-Regular; font-size: 11px;">Facebook/Google/LinkedIn/mas.to: CharlesHSauer</span></div></div></div></div></div>
</div>
<br></body></html>