Escolar Documentos
Profissional Documentos
Cultura Documentos
La Jerarqua de Chomsky
Apuntes sobre la Complejidad
Universidad de Cantabria
Jerarqua de Chomsky
Esquema
Motivacin
Jerarqua de Chomsky Gramticas Regulares Gramticas Libres de Contexto Gramticas Sensibles al Contexto
Jerarqua de Chomsky
Ideas y Nociones
Como se ha mencionado anteriormente, los lenguajes son conjuntos de palabras denidos por un alfabeto. No estamos interesados en cualquier conjunto, los lenguajes que nos interesan tienen una estructura inherente.
Jerarqua de Chomsky
Ideas y Nociones
Las gramticas nos marcan las reglas que han construido el lenguaje. Para detectar esas reglas nos podemos preguntar: Es nuestro lenguaje una sucesin de smbolos donde el siguiente depende del anterior (o del siguiente)? en cualquiera de los casos vemos una relacin simtrica. Se puede separar cada palabra del lenguaje en partes ms pequeas que no dependan unas de otras? Hay elementos que cambien su signicado dependiendo del contexto? No se ajusta a ninguna de estas premisas pero se reconoce su estructura de alguna manera (mediante algn algoritmo).
Jerarqua de Chomsky
Ideas y Nociones
Las gramticas nos marcan las reglas que han construido el lenguaje. Para detectar esas reglas nos podemos preguntar: Es nuestro lenguaje una sucesin de smbolos donde el siguiente depende del anterior (o del siguiente)? en cualquiera de los casos vemos una relacin simtrica. Se puede separar cada palabra del lenguaje en partes ms pequeas que no dependan unas de otras? Hay elementos que cambien su signicado dependiendo del contexto? No se ajusta a ninguna de estas premisas pero se reconoce su estructura de alguna manera (mediante algn algoritmo).
Jerarqua de Chomsky
Ideas y Nociones
Las gramticas nos marcan las reglas que han construido el lenguaje. Para detectar esas reglas nos podemos preguntar: Es nuestro lenguaje una sucesin de smbolos donde el siguiente depende del anterior (o del siguiente)? en cualquiera de los casos vemos una relacin simtrica. Se puede separar cada palabra del lenguaje en partes ms pequeas que no dependan unas de otras? Hay elementos que cambien su signicado dependiendo del contexto? No se ajusta a ninguna de estas premisas pero se reconoce su estructura de alguna manera (mediante algn algoritmo).
Jerarqua de Chomsky
Ideas y Nociones
Las gramticas nos marcan las reglas que han construido el lenguaje. Para detectar esas reglas nos podemos preguntar: Es nuestro lenguaje una sucesin de smbolos donde el siguiente depende del anterior (o del siguiente)? en cualquiera de los casos vemos una relacin simtrica. Se puede separar cada palabra del lenguaje en partes ms pequeas que no dependan unas de otras? Hay elementos que cambien su signicado dependiendo del contexto? No se ajusta a ninguna de estas premisas pero se reconoce su estructura de alguna manera (mediante algn algoritmo).
Jerarqua de Chomsky
Ejemplos
Las sumas expresiones matemticas que involucren simplemente nmeros sumas y restas. Que signica 3 4 + 2? Que pasa si a esa expresin le aadimos parntesis de este modo 3 (4 + 2)? En JAVA, que signica i + j?, es lo mismo que las variables i, j sean strings que sean enteros nmeros en punto otante? Pensemos ahora en alguna lengua humana, como espaol, es fcil detectar irona?
Jerarqua de Chomsky
Ejemplos
Las sumas expresiones matemticas que involucren simplemente nmeros sumas y restas. Que signica 3 4 + 2? Que pasa si a esa expresin le aadimos parntesis de este modo 3 (4 + 2)? En JAVA, que signica i + j?, es lo mismo que las variables i, j sean strings que sean enteros nmeros en punto otante? Pensemos ahora en alguna lengua humana, como espaol, es fcil detectar irona?
Jerarqua de Chomsky
Ejemplos
Las sumas expresiones matemticas que involucren simplemente nmeros sumas y restas. Que signica 3 4 + 2? Que pasa si a esa expresin le aadimos parntesis de este modo 3 (4 + 2)? En JAVA, que signica i + j?, es lo mismo que las variables i, j sean strings que sean enteros nmeros en punto otante? Pensemos ahora en alguna lengua humana, como espaol, es fcil detectar irona?
Jerarqua de Chomsky
Ejemplos
Las sumas expresiones matemticas que involucren simplemente nmeros sumas y restas. Que signica 3 4 + 2? Que pasa si a esa expresin le aadimos parntesis de este modo 3 (4 + 2)? En JAVA, que signica i + j?, es lo mismo que las variables i, j sean strings que sean enteros nmeros en punto otante? Pensemos ahora en alguna lengua humana, como espaol, es fcil detectar irona?
Jerarqua de Chomsky
Jerarqua de Chomsky
Denicin (Gramticas Regulares o de Tipo 3) Deniremos las gramticas con producciones lineales del modo siguiente: Llamaremos gramtica lineal por la izquierda a toda G := (V , , Q0 , P) gramtica tal que todas las producciones de P son de uno de los dos tipos siguientes: A a, donde A V y a {}. A aB, donde A, B V y a {}.
Jerarqua de Chomsky
Sea G := ({Q0 , Op}, {Num, +, }, Q0 , P) gramtica la siguiente gramtica: P = {Q0 Num Op | Num, Op +Q0 | Q0 }. Esta gramtica genera el lenguaje de todas las operaciones aritmticas que involucren solo sumas y restas.
Jerarqua de Chomsky
Jerarqua de Chomsky
Denicin (Gramticas Libres de Contexto o de Tipo 2) Llamaremos gramtica libre de contexto a toda G = (V , , Q0 , P) gramtica tal que todas las producciones de P son del tipo siguiente: A , donde A V y ( V ) . Un lenguaje libre de contexto es un lenguaje generado por una gramtica libre de contexto.
Jerarqua de Chomsky
Ejemplo
Tomemos la gramtica G que habamos denido anteriormente y aadamos una variable G := ({Q0 , Q1 , Op}, {Num, +, , (, )}, Q1 , P). Las producciones van a ser ahora P = {Q0 Q1 Op|Q1 , Op +Q1 | Q1 , Q1 Num | (Q0 )}.
Jerarqua de Chomsky
Jerarqua de Chomsky
Denicin (Gramticas sensibles al contexto o de Tipo 1) Llamaremos gramtica sensible al contexto a toda G = (V , , Q0 , P) gramtica tal que todas las producciones de P son del tipo siguiente: A , donde A V y , , ( V ) , = . Un lenguaje sensible al contexto es un lenguaje generado por una gramtica libre de contexto.
Jerarqua de Chomsky
Jerarqua de Chomsky
Supongamos que queremos denir el lenguaje que solo acepta programas donde las variables hayan sido especicadas. Por simplicidad supongamos que solo vamos a utilizar programas con una sola variable.
Jerarqua de Chomsky
Jerarqua de Chomsky
Jerarqua de Chomsky
Jerarqua de Chomsky
Una posible gramtica (solo en el caso de los identicadores estn formados por las letras a,b) : S Boolean CD=true, C aCA|bCB|, D AD aD, BD bD Aa aA, Ab bA Ba aB, Bb bB
Jerarqua de Chomsky
Jerarqua de Chomsky
Denicin (Gramticas de Tipo 0) Llamaremos gramtica de tipo 0 a toda G = (V , , Q0 , P) gramtica tal que todas las producciones de P son del tipo siguiente: , donde , ( V ) .
Jerarqua de Chomsky
Jerarqua de Chomsky
Notar que un lenguaje regular es siempre un lenguaje libre de contexto. Nuestra preocupacin ser encontrar cual es la mnima estructura que tiene un lenguaje.
Jerarqua de Chomsky