Teoría de Lenguajes Clase Teórica 2 Gramáticas y Jerarquía de Chomsky Primer cuartimestre 2014 Material compilado por el Profesor Julio Jacobo, a lo largo de distintas ediciones de la materia Teoría de Lenguajes en el Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires. Bibliografía: Capítulos 1 y 2 del libro Introduction to Formal Language Theory Michael Harrison 1978- Addison Wesley Gramáticas Definición Una gramática es una 4-upla G “ xVN , VT , P, Sy donde VN es un conjunto de símbolos llamados no-terminales (o también, variables o categorías sintácticas) VT es un conjunto de símbolos terminales (tal como lo era Σ en los ejemplos anteriores) P es el conjunto de ”producciones”, el cual es un subconjunto finito de ˚ ˚ ˚ pVN Y VT q VN pVN Y VT q ˆ pVN Y VT q , estas producciones son entonces pares ordenados pα, βq, que usualmente son notados como α Ñ β. S P VN es el símbolo distinguido de VN . Forma sentencial de una gramática G “ xVN , VT , P, Sy S es una forma sentencial de G. Si αβγ es una forma sentencial de G, y pβ Ñ δq P P , entonces αδγ es también una forma sentencial de G. Derivación directa en G ˚ Si αβγ P pVN Y VT q y pβ Ñ δq P P , se dice que αδγ se deriva directamente en G de αβγ y se denota como αβγ Ñ αδγ G Definición ` ˚ Denotaremos con Ñ y con Ñ a las clausura transitiva y a la clausura transitiva y reflexiva de Ñ respectivamente. G G G Definición k Denotaremos con Ñ a la potencia k de la relación Ñ. G G Definición Lenguaje generado por una gramática G “ xVN , VT , P, Sy, el cual se denotará como L pGq, ! ) ` L pGq “ α P VT˚ : S Ñ α G 1 Clasificación de gramáticas (Chomsky) Gramáticas regulares (tipo 3) Si todas las producciones son de la forma A Ñ xB o A Ñ x, donde A, B P VN y x P VT˚ , entonces la gramática es llamada ”lineal a derecha”. si todas las producciones son de la forma A Ñ Bx o A Ñ x, donde A, B P VN y x P VT˚ , entonces la gramática es llamada ”lineal a izquierda”. ambos tipos de gramática son llamados regulares. Gramáticas independientes del contexto (libres de contexto, tipo 2) ˚ Cada producción es de la forma A Ñ α, donde A P VN y α P pVN Y VT q . Clasificación de gramáticas (Chomsky) Dependientes del contexto (Sensitiva al contexto, tipo 1) ˚ Cada producción es de la forma α Ñ β, donde α, b P pVN Y VT q y |α| ď |β|. (Notar que esto impide la generación de la cadena nula λ) Sin restricciones (tipo 0) No poseen ninguna restricción como las anteriores. Un lenguaje generado por una gramática tipo t es llamado ”lenguaje t”, p.ej.: un lenguaje generado por una gramática independiente del contexto es llamado también: ”lenguaje independiente del contexto”. Alternativamente estos lenguajes son llamados tipo 3, 2, 1 y 0, respectivamente, p.ej.: un lenguaje generado por una gramática regular es llamado también: ”lenguaje tipo 3”. Ejemplo de gramática tipo 3 (regular): Gramática ( Gramática para generar an bm ck : m, n, k ě 1 , G “ xtS, A, B, Cu , ta, b, cu , S, P y, donde P está dado por S Ñ aA A Ñ aA A Ñ aB B Ñ bB B Ñ bC C Ñ cC CÑc derivación de aabbbbccc S Ñ aA Ñ aabbB Ñ aabbbbcC Ñ aaB Ñ aabbbB Ñ aabbbbccC Ejemplo de gramática tipo 2 (independiente del contexto) Gramática G “ xtE, T, F u , ta, `, ˚, p, qu , E, P y, donde P está dado por E ÑE`T EÑT T ÑT ˚F T ÑF F Ñ pEq F Ña derivación de a ˚ pa ` aq 2 Ñ aabB Ñ aabbbbC Ñ aabbbbccc E ÑT ÑT ˚F Ñ T ˚ pEq Ñ F ˚ pEq Ñ a ˚ pEq Ñ a ˚ pE ` T q Ñ a ˚ pT ` T q Ñ a ˚ pF ` T q Ñ a ˚ pa ` T q Ñ a ˚ pa ` F q Ñ a ˚ pa ` aq Ejemplo de gramática tipo 1 (dependiente del contexto): Gramática G “ xtS, B, Cu , ta, b, cu , S, P y, donde P está dado por S Ñ aSBC S Ñ abC CB Ñ BC bB Ñ bb bC Ñ bc cC Ñ cc derivación de aaabbbccc: SÑ Ñ aSBC Ñ aaabBCCBC Ñ aaabbBCCC Ñ aaabbbccC Ñ aaSBCBC Ñ aaabBCBCC Ñ aaabbbCCC Ñ aaabbbccc Ñ aaabCBCBC Ñ aaabBBCCC Ñ aaabbbcCC Ejemplo de gramática tipo 0 (sin restricciones): Gramática ˚( Gramática para generar ww : w P ta, bu G “ ptS, A, B, C, Du , ta, bu , S, P q, donde P está dado por S Ñ CD AD Ñ aD C Ñ aCA BD Ñ bD C Ñ bCB Aa Ñ aA Ab Ñ bA Ba Ñ aB Bb Ñ bB CÑλ DÑλ derivación de abaaabaa S Ñ CD Ñ abaCABAD Ñ abaaAABaD Ñ abaaaAABD Ñ abaaabAAD Ñ abaaabaaD Ñ aCAD Ñ abaaCAABAD Ñ abaaAAaBD Ñ abaaaAAbD Ñ abaaabAaD Ñ abaaabaa 3 Ñ abCBAD Ñ abaaAABAD Ñ abaaAaABD Ñ abaaaAbAD Ñ abaaabaAD