Context free grammars (CFGs) provide a formal way to describe the structure of languages by defining rewrite rules for replacing nonterminal symbols with strings of terminals and nonterminals. A CFG consists of variables, terminals, production rules, and a starting variable. Production rules take the form of replacing a single nonterminal with a string. CFGs can describe the recursive structure of natural languages but not agreement or reference. Examples are given for generating well-formed parentheses strings and showing how parse trees and derivations work. Ambiguous grammars that have multiple parse trees for some strings are discussed along with attempts to disambiguate grammars.