This document discusses context-free grammars and ambiguity. It provides examples of context-free grammars and their derivations using derivation trees. A context-free grammar is ambiguous if some string in the language has two or more derivation trees. Ambiguity is undesirable for programming languages as it leads to parsing ambiguities. To remove ambiguity, an ambiguous grammar can be modified to produce a non-ambiguous grammar.