Like SLR, LALR is a refinement to the technique for constructing LR(0) parse tables. While SLR uses FOLLOW sets to construct reduce actions, LALR uses LOOKAHEAD sets, which are more specific because they take more of the parsing context into account. FOLLOW sets are associated with a symbol, while LOOKAHEAD sets are specific to an LR(0) item and a parser state.
Specifically, the FOLLOW set for a given LR(0) item I in a given parser state S contains all symbols that are allowed by the grammar to appear after I's left-hand-side nonterminal. In contrast, the LOOKAHEAD set for I contains only those symbols that are allowed by the grammar to appear after I's right-hand-side has been parsed starting from state S. FOLLOW(I) is effectively the union of the LOOKAHEAD sets for all LR(0) items with the same left-hand-side as I, regardless of parser states or right-hand-sides, therefore losing all context information. Because the LOOKAHEAD set is specific to a particular parsing context, it can be more selective, therefore allowing finer distinctions than the FOLLOW set.
To do: The LALR algorithm for generating a parsing table