From: Paul Rubin Subject: Re: Bison documentation? The main difference between Bison and Yacc that I know of is that Bison supports the @N construction, which gives you access to the starting and ending line number and character number associated with any of the symbols in the current rule. Also, Bison supports the command `%expect N' which says not to mention the conflicts if there are N shift/reduce conflicts and no reduce/reduce conflicts. The differences in the algorithms stem mainly from the horrible kludges that Johnson had to perpetrate to make Yacc fit in a PDP-11. Also, Bison uses a faster but less space-efficient encoding for the parse tables (see Corbett's PhD thesis from Berkeley, "Static Semantics in Compiler Error Recovery", June 1985, Report No. UCB/CSD 85/251), and more modern technique for generating the lookahead sets. (See "Efficient Construction of LALR(1) Lookahead Sets" by F. DeRemer and A. Pennello, in ACM TOPLS Vol 4 No 4, October 1982. Their technique is the standard one now.)