• Gramáticas de Contexto Libre La flexibilidad proporcionada por las gramáticas de contexto libre es tal que es la mas usada para definir la sintaxis de los lenguajes de programación. Una definición formal de una gramática de conexto sensitivo es la siguiente:
Es un cuadruplo G= (V, S , P, S) donde V es un conjunto finíto de variables, S es un conjunto finíto de símbolos terminales, P es un conjunto finíto de reglas y S es el símbolo inicial. Cada producción tiene la forma uàv, donde u es una variable del conjunto V, y v es un miembro de (V È S)* . Esto quiere decir En la parte izquierda dela producción viene siempre una variable (símbolo no terminal) y en la parte derecha pueden venir cualquier número de símbolos terminales y no terminales incluyendo la cadena nula.
Una gramática de contexto libre produce un lenguaje también de contexto libre: G à L(G).