You are on page 1of 6

CLASIFICACIN DE GRAMTICAS I. NOCIN DE GRAMTICA 1.

1 DEFINICIONES BSICAS Empecemos por definir que es un lenguaje, pero para esto tenemos que definir alfabeto. Alfabeto el conjunto no vaco y finito de smbolos, dichos smbolos tienen una secuencia de longitud finita, cada secuencia se conoce como palabra o cadena, este ltimo trmino se da para evitar la idea de identificar el trmino palabra con las palabras de algn lenguaje natural. La cadena vaca, la cual se denota por el smbolo (epsilon) , es una palabra sobre cualquier alfabeto y se define como una secuencia vaca de smbolos tomados de cualquiera que sea el alfabeto en cuestin. Un lenguaje es un conjunto de cadenas, es decir est compuesto por un alfabeto. Los lenguajes pueden ser bastantes grandes, por ejemplo el lenguaje {1, 11, 111, 1111, 11111, ...} formado por todas las cadenas finitas de unos. Obsrvese que este lenguaje es infinito (aunque cada cadena del mismo tenga la longitud finita). Cuando un lenguaje tiene un tamao muy grande es difcil especificar que cadenas le pertenecen. 1.2 OPERACIONES CON CADENAS LONGITUD Si w es una cadenas sobre cualquier alfabeto, su longitud se denota mediante el smbolo | w | y se define como el nmero de smbolos que tiene la cadenas. CONCATENACIN Si w y z son cadenas, la concatenacin de w con z es la cadena que se obtiene al aadir a la cadena w la palabra z, y se denota wz o w . z. Obsrvese que se tiene que: | wz | = | w | + | z | IDENTIDAD La concatenacin de la cadena vaca con cualquier otra cadena w, no modifica a la palabra w. Por esta razn, se comporta como identidad con respecto a la operacin de concatenacin. POTENCIA La potencia de una cadena sobre un alfabeto se define como sigue: Sea w una cadena; para n N se define

Se dice que wi es la potencia i-sima de w. IGUALDAD Si w y z son cadenas, se dice que w es igual a z, si tienen la misma longitud y los mismos smbolos en la misma posicin. Se denota mediante w=z. PREFIJO Si w y x son cadenas, se dice que x es prefijo de w, si para alguna cadena y se obtiene w = xy. Si se considera y = , entonces para w = xy se tiene que w = x, con lo que toda palabra puede considerarse prefijo de s misma. La cadena vaca es prefijo de cualquier palabra. SUBCADENA Una cadena w es una subcadena de otra cadena z si existen la cadenas x e y para las cuales, z = xwy.

INVERSA La inversa o transpuesta de una palabra w, es la imagen refleja de w. Para denotar la inversa de w se usa w . Una definicin ms precisa de la misma puede ser la siguiente:

La inversa se "deshace" a s misma. Es decir, ((x) ) = x. 1.3 ESTRUCTURAS DE LAS GRAMTICAS El sistema de estructuracin de frases (secuencias arbitrarias finitas de smbolos) expresadas correctamente, es decir, si es una frase significativa, se define como gramtica. La gramtica consiste en dos conjuntos finitos, uno de smbolos no terminales y otro de smbolos terminales, un subconjunto finito de producciones y de un smbolo inicial. Su representacin es: (N, T, P, S) donde: N. Smbolos No Terminales. Son los smbolos introducidos para la definicin de la gramtica y que no figuran en las sentencias del lenguaje, deben ser definidos por otras producciones (o reglas BNF); es decir, tambin aparecen en el lado izquierdo de las producciones. Los smbolos no terminales son variables sintcticas y se conocen No-terminales. T. Smbolos Terminales. Son los smbolos que realmente aparecen en una frase. Nunca aparecern en el lado izquierdo de una produccin. Los smbolos terminales deben ser smbolos vlidos del lenguaje. Sus elementos se denominan Terminales. Generan una nica cadena, ella misma. N T = T* representa el conjunto de todas las cadenas posibles en T. P. Conjunto de Reglas de derivacin. Son las reglas para la sustitucin de cadenas y se denominan producciones Se definen por medio de un par ordenado, escritos sus elementos entre parntesis y separados con una coma, o pueden estar por medio de la notacin BNF (Backus Normal Form), teniendo una parte izquierda y una parte derecha separadas por una flecha, la cual se lee como: Se define como. Imponiendo restricciones a las posibles formas de las producciones se obtienen distintos tipos de gramticas. Por ejemplo: Restricciones respecto a que pueden ser y . Restricciones de dnde se puede aplicar la transformacin establecida por la produccin. S. Es el smbolo no-terminal mas importante del conjunto N, se le llama Smbolo inicial. Genera todas las cadenas del lenguaje. Ejemplo 1: La gramtica G1 define todas las tiras formadas por varias aes seguidas de igual nmero de bes (que en la descripcin algebraica sera: anbn), y su cuarteto quedara de la siguiente manera: G1 = (S, ab, P, S) Donde P es: S ab S aSb

PROPIEDADES DE UNA GRAMTICA R Para decir que una cadena est dentro de una gramtica debemos tener elementos terminales. R El estado inicial en las reglas de produccin es cero y produce una letra y adems deja espacio para seguir produciendo. R Si se va a repetir una letra o dgito se hace un ciclo. R Una gramtica puede tener varias producciones y la forma de terminar el anlisis es cuando la cadena contenga elementos terminales. R Los conjuntos de elementos terminales y no terminales son disjuntos. R Todas las producciones debern contener, al menos, un elemento no terminal en su lado izquierdo. II. CLASIFICACIN DE LAS GRAMTICAS Esta clasificacin fue publicada por Noam Chomsky en el ao 1959; introdujo entonces cuatro tipos de gramticas a base de cambiar slo el tipo de las reglas de derivacin (las restricciones). 2.1 TIPO 0.- GRAMTICAS CON ESTRUCTURA DE FRASE No hay restriccin en las producciones, es decir, P tiene la forma mas general: donde: (N T)+ (N T)* Es decir, que la parte izquierda de una regla pude ser una cadena de smbolos cualesquiera de N y T, y la parte derecha lo mismo y adems puede ser nula. 2.2 TIPO 1.- GRAMTICAS DEPENDIENTES DE CONTEXTO En ella la forma de la regla de P es la siguiente: A donde: , (N T)* AN (N T)+ , es decir debe ser no vaco. La produccin no se aplica siempre, sino en determinados contextos: solo se cambia A por gamma, pero slo en el contexto formado por alfa...beta. Ejemplo 2: Validar la cadena w = aabbcc con la gramtica de contexto sensitivo: G2= (a,b,c) , (B,C), P , S P: S aSBC|abC CB BC bB bb bC bc cB Bc cC cc

Se toma del estado inicial aSBC, y se van derivando los elementos segn las producciones, hasta obtener la cadena w: S aSBC aabCBC aabcBC aabBCC aabbcC aabbcc La cadena es vlida. Ejemplo 3: Validar la cadena w = xyxyxyyy G3= (x,y,z) , (X,Y,Z ), P , S P: S xyXY|xxZ|yyZ X xY|xX xX xx Y yX|yY yY yy Z xyZ|xy|yx|yyY xZ xz yZ yz Obteniendo la cadena w: S xyXY xyxYY xyxyXY xyxyxYY xyxyxyYY xyxyxyY xyxyxyyY xyxyxyyy La cadena es vlida 2.3 TIPO 2.- GRAMTICAS DE LIBRE CONTEXTO (GLC) La forma de P es ahora: A donde: A N y siendo el nico no terminal. (N T)* Es decir, el conjunto P es un subconjunto del producto cartesiano N x (N T)* La denominacin de contexto libre es porque se puede cambiar A por , independientemente del contexto en el que aparezca A. Ejemplo 4: G4= (a,+,*,(,) ) , (T,F), P , E P: EE+T ET TT*F

TF F (E) Fa Validar la cadena w= (a+a)*(a+a) E T T*F T*(E) T*(E+T) T*(T+T) T*(F+F) T*(a+a) F*(a+a) (E)*(a+a) (E+T)*(a+a) (T+T)*(a+a) (F+T)*(a+a) (a+T)*(a+a) (a+F)*(a+a) (a+a)*(a+a) La cadena es vlida

Ejemplo 5: G5= (a,+,-,*,/,(,) ) , (T,F), P, E P: EE+T|ET ET TT*F|T/F TF F (E) Fa Validar la cadena w= ( (a+a)-(a-a) ) * a/a E T T/F T*F/F T*F/a T*a/a F*a/a (E)*a/a (E-T)*a/a (T-F)*a/a (F-F)*a/a ((E)-(E))*a/a ((E+T)-(E-T))*a/a ((T+F)-(T-F))*a/a ((F+a)-(F-a))*a/a ((a+a)-(a-a))*a/a La cadena es vlida

2.4 TIPO 3.- GRAMTICAS REGULARES Las reglas de P son ahora de una de las dos formas: A aB Aa donde: A,B N AT Las gramticas regulares estn muy relacionadas con la teora de autmatas, puesto que el autmata de estados finitos es capaz de reconocer o analizar las cadenas de un lenguaje regular. A estas gramticas se les llama regulares por la izquierda. 2.5 CARACTERSTICAS DE LA CLASIFICACIN R Cada gramtica de un tipo es tambin del tipo anterior (Fig. 1). R Cada una de ellas es ms restringida que la anterior, es decir, comprende un menor nmero de lenguajes. R Cuanto menos restrictiva es una gramtica, ms complejo es su anlisis sintctico. R Las mas sencillas son las de Tipo 3.