Clasificación de Gramáticas

10
CLASIFICACIÓN DE GRAMÁTICAS 1.1 DEFINICIONES BÁSICAS Empecemos por definir que es un lenguaje, pero para esto tenemos que definir alfabeto. Alfabeto el conjunto no vacío y finito de símbolos, dichos símbolos tienen una secuencia de longitud finita, cada secuencia se conoce como palabra o cadena, este último término se da para evitar la idea de identificar el término palabra con las palabras de algún lenguaje natural. La cadena vacía, la cual se denota por el símbolo λ, es una palabra sobre cualquier alfabeto y se define como una secuencia vacía de símbolos tomados de cualquiera que sea el alfabeto en cuestión. 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. Obsérvese que este lenguaje es infinito (aunque cada cadena del mismo tenga la longitud finita). Cuando un lenguaje tiene un tamaño muy grande es difícil 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 símbolo | w | y se define como el número de símbolos que tiene la cadenas. CONCATENACIÓN Si w y z son cadenas, la concatenación de w con z es la cadena que se obtiene al añadir a la cadena w la palabra z, y se denota wz o w . z. Obsérvese que se tiene que: | wz | = | w | + | z |

description

tipos de gramaticas y su explicacionEjemplos

Transcript of Clasificación de Gramáticas

Page 1: Clasificación de Gramáticas

CLASIFICACIÓN DE GRAMÁTICAS

1.1 DEFINICIONES BÁSICASEmpecemos por definir que es un lenguaje, pero para esto

tenemos que definir alfabeto. Alfabeto el conjunto no vacío y finito de símbolos, dichos

símbolos tienen una secuencia de longitud finita, cada secuencia se conoce como palabra o cadena, este último término se da para evitar la idea de identificar el término palabra con las palabras de algún lenguaje natural.

 La cadena vacía, la cual se denota por el símbolo λ, es una

palabra sobre cualquier alfabeto y se define como una secuencia vacía de símbolos tomados de cualquiera que sea el alfabeto en cuestión.

 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. Obsérvese que este lenguaje es infinito (aunque cada cadena del mismo tenga la longitud finita). Cuando un lenguaje tiene un tamaño muy grande es difícil 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 símbolo | w | y se define como el número de símbolos que tiene la cadenas. 

CONCATENACIÓNSi w y z son cadenas, la concatenación de w con z es la cadena

que se obtiene al añadir a la cadena w la palabra z, y se denota wz o w . z. Obsérvese que se tiene que:

| wz | = | w | + | z | IDENTIDADLa concatenación de la cadena vacía ε con cualquier otra

cadena w, no modifica a la palabra w. Por esta razón, ε se comporta como identidad con respecto a la operación de concatenación.

Page 2: Clasificación de Gramáticas

 POTENCIALa 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. 

IGUALDADSi w y z son cadenas, se dice que w es igual a z, si tienen

la misma longitud y los mismos símbolos en la misma posición. Se denota mediante w=z. 

PREFIJOSi 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 vacía ε es prefijo de cualquier palabra. 

SUBCADENAUna cadena w es una subcadena  de otra cadena z si existen la

cadenas x e y para las cuales, z = xwy. 

INVERSALa inversa o transpuesta de una palabra w, es la imagen refleja

de w. Para denotar la inversa de w se usa wç. Una definición más precisa de la misma puede ser la siguiente:

 La inversa se "deshace" a sí misma. Es decir,  ((x) ç )ç= x.

  1.3 ESTRUCTURAS DE LAS GRAMÁTICAS 

El sistema de estructuración de frases (secuencias arbitrarias finitas de símbolos) expresadas correctamente, es decir, si es una frase significativa, se define como gramática.

Page 3: Clasificación de Gramáticas

 La gramática consiste en dos conjuntos finitos, uno de símbolos

no terminales y otro de símbolos terminales, un subconjunto finito de producciones y de un símbolo inicial. Su representación es:

 (VN, VT, P, S)donde: VN. Símbolos No Terminales. Son los símbolos introducidos para la definición de la gramática y que no figuran en las sentencias del lenguaje, deben ser definidos por otras producciones (o reglas BNF); es decir, también aparecen en el lado izquierdo de las producciones. Los símbolos no terminales son variables sintácticas y se conocen No-terminales. VT. Símbolos Terminales. Son los símbolos que realmente aparecen en una frase. Nunca aparecerán en el lado izquierdo de una producción. Los símbolos terminales deben ser símbolos válidos del lenguaje. Sus elementos se denominan Terminales. Generan una única cadena, ella misma.

VN  VT =ΦV* representa el conjunto de todas las cadenas posibles en V. P. Conjunto de Reglas de derivación. Son las reglas para la sustitución de cadenas y se denominan producciones Se definen por medio de un par ordenado, escritos sus elementos entre paréntesis y separados con una coma, o pueden estar por medio de la notación 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 gramáticas. Por ejemplo:Restricciones respecto a que pueden ser  y .Restricciones de dónde se puede aplicar la transformación establecida por la producción. S. Es el símbolo no-terminal más importante del conjunto N, se le llama Símbolo inicial. Genera todas las cadenas del lenguaje. 

Ejemplo 1:La gramática G1 define todas las tiras formadas por

varias aes seguidas de igual número de bes (que en la descripción algebraica sería: anbn), y su cuarteto quedaría de la siguiente manera:

G1 = (S, ab, P, S)Donde P es:

S abS aSb

 

Page 4: Clasificación de Gramáticas

PROPIEDADES DE UNA GRAMÁTICA     Para decir que una cadena está dentro de una gramática

debemos tener elementos terminales.     El estado inicial en las reglas de producción es cero y produce

una letra y además deja espacio para seguir produciendo.     Si se va a repetir una letra o dígito se hace un ciclo.     Una gramática puede tener varias producciones y la forma de

terminar el análisis es cuando la cadena contenga elementos terminales.

     Los conjuntos de elementos terminales y no terminales son disjuntos.

     Todas las producciones deberán contener, al menos, un elemento no terminal en su lado izquierdo.

 

II. CLASIFICACIÓN DE LAS GRAMÁTICAS         Esta clasificación fue publicada por Noam Chomsky en el año 1959; introdujo entonces cuatro tipos de gramáticas a base de cambiar sólo el tipo de las reglas de derivación (las restricciones).  

2.1 TIPO 0.- GRAMÁTICAS CON ESTRUCTURA DE FRASE        No hay restricción en las producciones, es decir, P tiene la forma más general:

  donde:

 Є (N  T)+

 Є (N  T)*

 Es decir, que la parte izquierda de una regla pude ser una

cadena de símbolos cualesquiera de N y T, y la parte derecha lo mismo y además puede ser nula.

  2.2 TIPO 1.- GRAMÁTICAS DEPENDIENTES DE CONTEXTO        En ella la forma de la regla de P es la siguiente:

Page 5: Clasificación de Gramáticas

 A    donde:

,  Є (N  T)*A Є N Є (N  T)+ , es decir   debe ser no vacío. La producción no se aplica siempre, sino en determinados

contextos: solo se cambia A por gamma, pero sólo en el contexto formado por alfa...beta.

 Ejemplo 2:        Validar la cadena w = aabbcc con la gramática 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 según las producciones, hasta obtener la cadena w:

S aSBC           aabCBC

   aabcBC           aabBCC           aabbcC           aabbcc    La cadena es válida. Ejemplo 3:

Validar la cadena w = xyxyxyyyG3=  (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

Page 6: Clasificación de Gramáticas

           xyxyxyY           xyxyxyyY           xyxyxyyy      La cadena es válida

  2.3 TIPO 2.- GRAMÁTICAS 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 denominación 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:     E  E + T     E  T     T  T * F     T  F     F  (E)     F  a

 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 válida

  Ejemplo 5:

Page 7: Clasificación de Gramáticas

G5=  (a,+,-,*,/,(,) ) , (T,F), P, E        P:     E  E + T | E – T     E  T     T  T * F | T / F     T  F     F  (E)     F  a

 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 válida

  2.4 TIPO 3.- GRAMÁTICAS REGULARES        Las reglas de P son ahora de una de las dos formas:

A  aBA  a

donde:        A,B Є N        A Є T         Las gramáticas regulares están muy relacionadas con la teoría de autómatas, puesto que el autómata de estados finitos es capaz de reconocer o analizar las cadenas de un lenguaje regular.        A estas gramáticas se les llama regulares por la izquierda.

  2.5 CARACTERÍSTICAS DE LA CLASIFICACIÓN

     Cada gramática de un tipo es también del tipo anterior (Fig. 1).     Cada una de ellas es mas restringida que la anterior, es decir,

comprende un menor número de lenguajes.

Page 8: Clasificación de Gramáticas

     Cuanto menos restrictiva es una gramática, mas complejo es su análisis sintáctico.

     Las mas sencillas son las de Tipo 3. 

 

 

 

 

 

 

Fig. 1.- Los cuatro tipos de Gramáticas según Chomsky

 

GLOSARIOAlfabeto o Vocabulario. Conjunto de todos los símbolos que forman las sentencias del lenguaje. Cadena. Secuencia ordenada de los símbolos que forman un lenguaje. Gramática. Estructuración de cadenas expresadas correctamente. Lenguaje. Conjunto de cadenas. Símbolo. Es un componente elemental del vocabulario del lenguaje que se emplea para formar cadenas del lenguaje.