Computerworld interviews Stephen C. Johnson, the brains behind YACC Yet Another Compiler Compiler: The compiler was developed some 35 years ago and is still going strong today through various incarnations. Asked what he is proudest of in terms of YACC’s development and use, Johnson said: “I think computing is a service profession. I am happiest when the programs that I have written (YACC, Lint, the Portable C Compiler) are useful to others. In this regard, the contribution YACC made to the spread of Unix and C is what I’m proudest of.” And would he do anything differently? “I’d try harder to find a notation other than $1, $2, $$, etc. While simple and intuitive, the notation is a source of errors as grammars evolve.”
Nice job on the link there
Speaking of yacc… http://undeadly.org/cgi?action=article&sid=20080708155228
I prefer the feature set in Flex/Bison to Lex/YACC; however, that being said, Lex/YACC were incredibly innovative for their time, and their impact is still being felt today, 35 years later. I shudder at the memory of one of my grad school professors, who required us to hand-code a LALR parser/generator without the use of Lex/YACC (but it certainly taught me a thing or two about some of the reduction problems faced by YACC, how YACC works, etc). Kudos to Stephen C. Johnson: You saved my ass on more than one project. 😉
Edited 2008-07-10 22:20 UTC
I’ve used Bison myself and quite appreciate that tool but I feel that for large compiler projects with insane syntax, some people are going back to hand crafted parsers, that was done in GCC to handle C++ syntax with all error processing…
There are many aternative to Bison/Yacc, like ANTLR or Spirit, and for functional languages, “parser combinators” and monads…