News for hackers. Stuff that matters.
Re:GNU Bison 3.3 released by gnulinux on Saturday January 26, 2019 @06:52PM (#19009365)
GCC used to use bison. I don't think GCC became a major project recently. But you're correct that recursive descent is more efficient. Not everything is efficiency though (parsers are usually 1% of compile time since they're dirt cheap compared to code generator and especially static analyzer and optimizer). Bison makes parsing extremely simple. I can't see why anyone would use recursive descent unless they're a super major project and need to squeeze every ms.
Re:GNU Bison 3.3 released by wwright on Saturday January 26, 2019 @07:02PM (#19009410)
A big part of why tools move away from Bison and ANTLR isn’t performance, but UX (especially error reporting)
Re:GNU Bison 3.3 released by gnulinux on Saturday January 26, 2019 @08:05PM (#19009712)
In my experience recursive descent doesn't have any better error reporting than Bison or ANTLR. Parser combinators are much better if error reporting is what you're aiming for. Also, for LALR/LR parsers like Bison/ANTLR, the canonical trick is to encode errors in your grammar, which really isn't a huge deal. E.g. in pseudocode

    suite: stmt ';' stmt {/* ok */}
         | one_line_stmt NEWLINE stmt {raise("you need a ';' there buddy");}
         | // other rules
         ;
obviously this won't be useful for every case in general, otherwise why use ';' at all, but in most cases it'll give a helpful error.

Some more powerful parsers like Earley Algorithm have much worse error reporting.

Re:GNU Bison 3.3 released by ksherlock on Saturday January 26, 2019 @11:26PM (#19010340)
context sensitive grammars.
Re:GNU Bison 3.3 released by gnulinux on Saturday January 26, 2019 @11:50PM (#19010386)
You can deal with context sensitive grammars with "lexer trick" or multiple pass parsers.