1. The document introduces Backus-Naur Form (BNF) as a common way to define formal languages using replacement grammars. BNF was invented by John Backus in the 1950s to more precisely define programming languages.
2. BNF grammars define languages using rules of the form nonterminal ::= replacement, where nonterminals on the left-hand side are replaced by symbols on the right-hand side. These symbols can include other nonterminals or terminals.
3. Recursive grammars, where nonterminals can produce replacements containing themselves, allow compact BNF grammars to define languages with an infinite number of strings.