In this lecture we study how we can derive parsers from context-free grammars. We start with looking again at the semantics of context-free grammars as derivations. Then we observe that parsing is the inverse of derivation, i.e. reducing a sentence to a (start) symbol or parse tree. A shift-reduce parsers computes a right-most derivation for a sentence. The question is then how to make that process deterministic and efficient. First we see how item sets encode the state of a shift-reduce parser and make it clear what actions can be undertaking without consulting the grammar. Next, we compute the FOLLOW set of a grammar in order to determine which action to take next in case there are multiple possible actions in a state. This approach yields a linear deterministic parser for grammars in the the SLR(1) format, i.e. those grammars for which this method produces a parse table without shift/reduce conflicts.