En la teoría del lenguaje formal , una gramática no contráctil está en la forma normal de Kuroda si todas las reglas de producción tienen la forma: [1]
donde A, B, C y D son símbolos no terminales y a es un símbolo terminal . [1] Algunas fuentes omiten el patrón A → B. [2]
Recibe su nombre en honor a Sige-Yuki Kuroda , quien originalmente la llamó gramática lineal limitada , una terminología que también fue utilizada por algunos otros autores posteriormente. [3]
Toda gramática en la forma normal de Kuroda no es contráctil y, por lo tanto, genera un lenguaje sensible al contexto . Por el contrario, toda gramática no contráctil que no genere la cadena vacía se puede convertir a la forma normal de Kuroda. [2]
Una técnica sencilla atribuida a György Révész transforma una gramática en forma normal de Kuroda en una gramática sensible al contexto : AB → CD se reemplaza por cuatro reglas sensibles al contexto AB → AZ , AZ → WZ , WZ → WD y WD → CD . Esto demuestra que toda gramática no contráctil genera un lenguaje sensible al contexto. [1]
También existe una forma normal similar para gramáticas sin restricciones , que al menos algunos autores también llaman "forma normal de Kuroda": [4]
donde ε es la cadena vacía. Toda gramática sin restricciones es débilmente equivalente a una que utilice únicamente producciones de esta forma. [2]
Si se elimina la regla AB → CD de lo anterior, se obtienen gramáticas libres de contexto en la forma normal de Chomsky . [5] La forma normal de Penttonen (para gramáticas sin restricciones) es un caso especial donde la primera regla anterior es AB → AD . [4] De manera similar, para gramáticas sensibles al contexto, la forma normal de Penttonen, también llamada forma normal unilateral (siguiendo la propia terminología de Penttonen) es: [1] [2]
Para cada gramática sensible al contexto, existe una forma normal unilateral débilmente equivalente. [2]