Modern compiler p. 165:
The reason why conflict resolution by FOLLOW set does not work nearly as well as one might wish is that it replaces the look-ahead of single item of rule N in a given LR state by FOLLOW set of N, which is the union of all the look-aheads of all alternatives of N in all states.
LR(1) item sets are more discrimating : a look-ahead set is kept with each separate item, to be used to resolve conflicts when a reduce item has been reached. This greatly
increases the strength of the parser, but also the size of the parsing table.
Page 168 :
We see that the LR(1) automaton is more discrimating than the SLR(1) automaton. In fact, it is so strong that any language that CAN be parsed from left to right with one look- ahead in linear time can be parsed using LR(1) method : LR(1) is the strongest possible linear left-to-right parsing method. The reason is that it can bshown (Knuth 1965) that the set of LR items implements the best possible breadth-first search for handles.
The splitting of the FOLLOW set is the source of power of LR(1), but this power is not needed in each and every state. For instance, we could combine state .. and state .. into … without compromising the discriminatory power of the LR(1) automaton. Note that we combine states with the same core only, and we do this by adding the look-ahead sets of the corresponding items they contain.
1st paragraph, section 18.104.22.168 : LR(1) states are always split up versions of LR(0) states.
Hence the LALR(1) automaton will have the same number of states as the SLR automaton ! The difference is that the FOLLOW stes will have been discriminated.
Also last paragraph page 171 confirms that!
One reason why the LALRL method works so well is that state combination cannot cause shift-reduce conflicts. See explanation on page 172.
See also the Page 173 on resolving shift-reduce conflicts.