Gramáticas sensibles al contexto

Una gramática sensible al contexto es una gramática formal que se define como una cuádrupla G = (N, Σ, P, S) en donde:

  • N es un alfabeto de símbolo no terminales (variables)
  • Σ es un alfabeto de símbolos terminales con N ∩ Σ = ∅
  • S ∈ N es el símbolo inicial
  • P es el conjunto finito de producciones de la forma α → β, donde α y β ∈ (N ∪ Σ)+ y |α| ≤ |β|.


En este tipo de gramáticas, las producciones son de la forma α → β, donde α y β no permiten ε de una producción, es decir, no se permite la palabra vacía tanto para el lado izquierdo como para el lado derecho. Sin embargo, pueden contener cualquier cantidad de variables (no terminales) y constantes (terminales).


Se lo llama sensible al contexto porque α y β determinan la forma que debe tener una cadena que puede ser reemplazada por alguna de las producciones. Un lenguaje formal que puede ser descrito para una gramática sensible al contexto se llama lenguaje sensible al contexto.

Definición alternativa editar

Otra forma de definir las gramáticas sensibles al contexto, es aquella gramática formal con la única restricción que todas las producciones α -> β en P cumplan que |α| ≤ |β| donde |α| es la longitud de α. Se las llama de longitud no decreciente.

Se demuestra que las gramáticas sensibles al contexto, y las de longitud creciente son equivalentes en el sentido que generan los mismos lenguajes, a través de una doble contención, es decir, toda gramática sensible al contexto está contenida en las de longitud creciente y viceversa.

Ejemplo editar

S → abc | aSBc
cB → Bc
bB → bb

Esta gramática genera este lenguaje:  , que no es libre de contexto. Esto lo sabemos gracias al lema del bombeo. También existe una gramática sensible al contexto para  , pero es mucho más compleja que la anterior