I enjoy writing recursive descent parsers, and I enjoy the grammars that result from such parsers when cleanly done. I do agree though that if you grammar is being invented as you go, yacc can be a boon. But in a sense, that's also it's biggest failing: it makes it too easy to write bad grammars. -rob On Wed, May 26, 2021 at 4:22 PM Bakul Shah wrote: > Many existing programming languages do have a simple enough > syntax to make it easy to write a recursive descent parser for them > but not alll. > > Handwritten recursive descent parsers are often LL(1) with may be > a separate operator-precedence parsing for expressions. > > If you are defining a new language syntax you can make sure parsing > is easy but not all languages are LL(1) (which is a subset of LALR(1), > which is a subset of LR(1), which is a subset of GLR). Handwritten > parsers for these more general grammars are bound to get more > complicated. > > Even *we* understand parsing, writing a parser for some existing > languages which grew "organically" can become tedious, or > complicated or adhoc. Often such languages have no well specified > grammar (the code is the specification!). A yacc grammar would help. > > Often one writes a yacc grammar while a new language & its syntax > is evolving. Changing a yacc file is more localized & easier than fixing > up a handwritten parser. Even Go has such a grammar initially. > > -- Bakul > > > On May 25, 2021, at 8:03 PM, Larry McVoy wrote: > > > > You do, I don't. I'm not alone in my lack of understanding. > > > > I think that all the things that yacc solved, Steve gets some kudos. > > I've used it a bunch and I did not need to be as smart as you or > > Steve to get the job done. > > > > You getting past that is cool but it doesn't make his work less. > > > > On Wed, May 26, 2021 at 10:37:45AM +1000, Rob Pike wrote: > >> And today, we understand parsing so well we don't need yacc. > >> > >> -rob > >> > >> > >> On Wed, May 26, 2021 at 10:20 AM Nelson H. F. Beebe < > beebe@math.utah.edu> > >> wrote: > >> > >>> The last article of the latest issue of the Communications of the ACM > >>> that appeared electronically earlier today is a brief interview with > >>> this year's ACM Turing Award winners, Al Aho and Jeff Ullman. > >>> > >>> The article is > >>> > >>> Last byte: Shaping the foundations of programming languages > >>> https://doi.org/10.1145/3460442 > >>> Comm. ACM 64(6), 120, 119, June 2021. > >>> > >>> and it includes a picture of the two winners sitting on Dennis > >>> Ritchie's couch. > >>> > >>> I liked this snippet from Jeff Ullman, praising fellow list member > >>> Steve Johnson's landmark program, yacc: > >>> > >>>>> ... > >>>>> At the time of the first Fortran compiler, it took several > >>>>> person-years to write a parser. By the time yacc came around, > >>>>> you could do it in an afternoon. > >>>>> ... > >>> > >>> > >>> > ------------------------------------------------------------------------------- > >>> - Nelson H. F. Beebe Tel: +1 801 581 5254 > >>> - > >>> - University of Utah FAX: +1 801 581 4148 > >>> - > >>> - Department of Mathematics, 110 LCB Internet e-mail: > >>> beebe@math.utah.edu - > >>> - 155 S 1400 E RM 233 beebe@acm.org > >>> beebe@computer.org - > >>> - Salt Lake City, UT 84112-0090, USA URL: > >>> http://www.math.utah.edu/~beebe/ - > >>> > >>> > ------------------------------------------------------------------------------- > >>> > > > > -- > > --- > > Larry McVoy lm at mcvoy.com > http://www.mcvoy.com/lm > >