Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Periodo 2013-3 Lunes 25 de Noviembre del 2013 Gramticas Libres de Contexto Abstract Una Gramtica Libre de Contexto es un conjunto finito de variables, cada una de las cuales representa un lenguaje. Las gramticas libre de contexto permite describir la mayora de los lenguajes de programacin, de hecho, la sintaxis de la mayora de lenguajes de programacin est definida mediante gramtica libres de contexto.
Introduccin
La gramtica es un conjunto finito de smbolos o variables que representan categoras aplicables a elementos de lxico. Las gramticas libre de contexto son las que nos permite describir la mayora de los lenguajes de programacin, de hecho, la sintaxis de la mayora de lenguajes de programacin est definida mediante gramtica libres de contexto. La gramtica libre de contexto es muy til para definir relaciones entre objetos sintcticos tales como la sintaxis de un lenguaje de programacin. Una gramtica libre de contexto tiene un smbolo de arranque o de objetivo. Son smbolos terminales que representan ejemplos de variables y son reglas de produccin que combinan entre s para el logro del objetivo. Como la gramtica libre de contexto es un tema que nos incumbe a cada persona que utilizamos lenguajes de programacin, que estudiamos informtica, en este trabajo de investigacin se desarrollara este tema, para as tener unos conocimientos ms amplios del mismo. Entender que es y de qu forma se utiliza.
Qu es una gramtica? Modelo de estructuras recursivas. Definicin de reglas para representar las expresiones de los lenguajes. Especificacin rigurosa y explicita de estructura de un lenguaje.
Caractersticas: Ausencia de ambigedad, por tanto bien definidas. Rigurosas (claridad, explicitud). Facilitan evaluacin: comprobar, conclusiones, derivar. Hacer predicciones: generalizacin. Desarrollo de aplicaciones.
Gramticas Formales Gramtica regulares. Gramticas independientes de contexto. Gramticas sensibles al contexto. Gramtica sin restricciones o de estructura de frase.
Tipos de Gramticas N. Chomsky clasifica las gramticas en cuatro tipos: o Gramticas sin restricciones o gramticas de estructura de frases (Tipo 0). o Gramticas sensibles al contexto (Tipo 1). o Gramticas independientes de contexto (Tipo 2). o Gramticas regulares (Tipo 3).
Las gramticas se especifican dando una lista de sus producciones, donde las producciones del smbolo inicial se listan primero. Las producciones con el mismo no terminal del lado izquierdo pueden tener sus lados derechos agrupados, separados por es smbolo |. Se dice que una produccin es para un no terminal si el no terminal aparece en el lado izquierdo de la produccin. Ejemplo: Usamos E en lugar de <expresin> para la siguiente gramtica:
Entonces formalmente esta gramtica se expresa como ({E}, {+, *, (,), id}, P, E). Segn la Jerarqua de Chomsky: las gramticas generativas se clasifican en 4 tipos. Esta clasificacin es inclusiva, es decir tipo 3 tipo 2 tipo 1 tipo 0.
Gramticas Libres de Contexto Estas gramticas, conocidas tambin como gramticas de tipo 2 o gramticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto. Los lenguajes libres del contexto son aquellos que pueden ser reconocidos por un autmata de pila determinstico o no determinstico. Una Gramtica Libre de Contexto es un conjunto finito de variables, cada una de las cuales representa un lenguaje. Los lenguajes representados por las variables se describen recursivamente en trminos de otros lenguajes o de smbolos primitivos llamados terminales. Las reglas que describen el lenguaje asociado con cada variable se llaman producciones. La motivacin original para las gramticas libres de contexto fue la descripcin de lenguajes naturales tal como ocurre con las siguientes reglas:
Donde las variables se escriben dentro de corchetes angulares y las terminales son por ejemplo, la palabra nio. El trmino libre de contexto se refiere al hecho de que el no terminal V puede siempre ser sustituido por W sin tener en cuenta el contexto en el que ocurra.
Si cada quien se apega a esas conversiones mencionadas anteriormente, podemos deducir las variables, terminales y el smbolo de inicio de una gramtica nicamente examinando sus producciones. As, se puede representar una gramtica por una simple lista de producciones. Si son las producciones para las variables A de alguna gramtica, entonces se pueden expresar por la notacin: donde la lnea vertical se lee como 0. La gramtica del ejemplo anterior se escribe como .
Otra Definicin Las GIC (Gramticas Independientes del Contexto) o GLC (Gramticas Libres del Contexto) son llamadas tambin Gramtica en la Forma de Backus-Naur (BNF) (usado para describir lenguajes de programacin). Las GIC se usan para inferir si ciertas cadenas estn en el lenguaje expresado por la gramtica. Hay 2 tipos de inferencia:
Derivacin El proceso de derivacin es el mtodo que nos permite obtener a partir, de una gramtica establecida, el conjunto de palabras del lenguaje correspondiente. Este proceso solo nos exige partir del smbolo inicial o sea un no terminal. Para el caso de las Gramticas Libres del Contexto, podemos implementar procesos de derivacin especficos como el de izquierda y el de derecha, siempre y cuando las producciones lo permitan. Las derivaciones a la izquierda significan reemplazar el primer no terminal que encontramos en la cadena de b recorrindola de izquierda a derecha, en todo el proceso de derivacin.
Las derivaciones a la derecha significan reemplazar el primer no terminal que encontramos en la cadena de b recorrindola de derecha a izquierda, en todo el proceso de derivacin.
rboles de derivacin Es un rbol formado a partir de la derivacin de una gramtica. Sirve para estudiar la ambigedad (ms de un rbol de derivacin y por tanto de interpretaciones). Los arboles de derivacin permiten hacer una clasificacin jerrquica en las palabras de un lenguaje que es til en aplicaciones como la compilacin de lenguajes de programacin. Los vrtices de una rbol de derivacin son etiquetados con terminales o variables de la gramtica o posiblemente con . Si un vrtice interior n es etiquetado con A, y los hijos de n son etiquetados con X1, X2, , Xk por la izquierda, entonces A X1X2Xk debe ser una produccin. Caractersticas: Cada nodo interior es variable. Cada nodo hoja es Terminal o . Si existe una produccin A X1X2Xk, ver el siguiente rbol:
La cadena resultado del rbol: las hojas del rbol concatenadas de izquierda a derecha, recorrido en pre orden.
Formalmente, sea G = (V, T, P, S) una Gramticas Libres de Contexto. Un rbol es de derivacin es G si: Cada vrtice tiene una etiqueta y es un smbolo en V u T u {}. La etiqueta de la raz es S. Si un vrtice es interior y tiene etiqueta A, entonces A V. Si un vrtice n tiene etiqueta A y los vrtices n1, n2, , nk son hijos del vrtice n, ordenados por la izquierda, con etiquetas X1, X2, , Xk, respectivamente, entonces A X1X2 Xk debe ser una produccin en P. Si el vrtice n tiene etiqueta , entonces n es una hoja y es el nico hijo de su padre.
Se pueden escribir como <A> ::= <B1> | <B2> | ... | <Bn>. Ejemplo: La siguiente es una definicin BNF del lenguaje que consiste de cadenas de parntesis anidados: <cadena_par> :: = <cadena_par> <parntesis> | <parntesis> <Parntesis> ::= (<cadena_par> ) | ( ) Por ejemplo las cadenas ( ) ( ( ) ) y ( ) ( ) ( ) son cadenas vlidas. En cambio las cadenas ( ( ) y ( ) ) ) no pertenecen al lenguaje.
10
Propiedades de los lenguajes libres de contexto Una de las definiciones alternativas y equivalentes de lenguaje libre de contexto emplea autmatas no deterministas: un lenguaje es libre de contexto si puede ser aceptado por ese autmata. Un lenguaje puede ser tambin modelado como un conjunto de todas las secuencias de terminales aceptadas por la gramtica. Este modelo ayuda a entender las operaciones de conjuntos sobre lenguajes. La unin y concatenacin de dos lenguajes libres de contexto es tambin libre de contexto. El inverso de un lenguaje libre de contexto es tambin libre de contexto, pero el complemento no tiene por que serlo. Los lenguajes regulares son libres de contexto porque pueden ser descritos mediante una gramtica de libre contexto. La interseccin de un lenguaje libre de contexto y un lenguaje regular es siempre libre de contexto. Existen Gramticas sensibles al contexto que no son libres de contexto. Para demostrar que un lenguaje dado no es libre de contexto, se puede emplear el lema del bombeo para lenguajes libres de contexto. El problema de determinar si una gramtica sensible al contexto describe un lenguaje libre del contexto es indecidible.
11
Conclusin
Habiendo concluido con el desarrollo del tema gramticas libres de contexto, podemos entender que cada lenguaje debe de tener una gramtica libre de contexto empleada. Que para entender la gramatical libre de contexto se debe tener en cuenta los siguientes tema: rbol de derivacin, Derivacin ms a la izquierda y ms a la derecha, Gramtica ambigua, y los lenguajes inherentemente ambiguos. Las gramticas libres del contexto se escriben, frecuentemente, utilizando una notacin conocida como BNF (Backus-Naur Form). El cual es la tcnica ms comn para definir la sintaxis de los lenguajes de programacin.
Referencia
http://acme.math.cinvestav.mx/~basico/cuatro.html http://www.slideshare.net/abelrod12/gramtica-de-contexto-libre-abel-rodriguez-081297 http://ccc.inaoep.mx/~emorales/Cursos/Automatas/GramsLibresContexto.pdf http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r43399.PDF http://www.exa.unicen.edu.ar/catedras/ccomp1/Apunte5.pdf http://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur http://webdelprofesor.ula.ve/ingenieria/hyelitza/materias/preteoria/apuntes/tema4.p df http://gramaticas.galeon.com/gramatica.html
12