3.1 Formal Languages and Grammars