Las gramáticas formales definen un lenguaje formal mediante la descripción de cómo se pueden generar sus cadenas, utilizando una cuádrupla que incluye símbolos no terminales, terminales, producciones y un símbolo axioma. La jerarquía de Chomsky clasifica distintos tipos de gramáticas formales en una escala del tipo 0 sin restricciones al tipo 3 regular, dependiendo de las restricciones en sus producciones.