Está en la página 1de 18

TEMA 3: GRAMTICAS FORMALES

Jos Miguel Puerta Antonio Fernndez Caballero


Departamento de Informtica Universidad de Castilla - la Mancha
Teora de Autmatas y Lenguajes Formales 1

TEMA 3: GRAMTICAS FORMALES


INDICE z Descripcin Informal y Ejemplos z Descripcin Formal. Conceptos { Derivaciones. Sentencias { Lenguaje generado por una gramtica { rboles de derivacin y de sntesis { Gramticas ambiguas z Jerarqua de Chomsky z Propiedades de las Gramticas Regulares
Teora de Autmatas y Lenguajes Formales 2

TEMA 3: GRAMTICAS FORMALES


DESCRIPCIN INFORMAL Y EJEMPLOS (1) Estudio de los lenguajes: z Gramtica = Anlisis de la estructura de las frases
{ Anlisis lxico (morfologa) = ver si las palabras son correctas { Anlisis sintctico = ver si las palabras combinadas forman una frase correcta { Anlisis fontico = propiedades del lenguaje hablado

z Semntica = Estudio del significado de las frases de un lenguaje.


Teora de Autmatas y Lenguajes Formales 3

TEMA 3: GRAMTICAS FORMALES


DESCRIPCIN INFORMAL Y EJEMPLOS (2)
Informalmente: z Definicin constructiva de las palabras de un lenguaje. z Dispositivo abstracto que genera palabras de un lenguaje. z Ejemplos:
L = {anbm | n, m 0}, reglas de construccin: G = {S aS | a | aA | b | bA | ; A b | bA} A partir de S podemos generar palabras de L sustituyendo smbolos S A por alguna de las cadenas que generan (parte derecha de la flecha): S aS aaS aaaA aaabA aaabb S bA bbA bbb
Teora de Autmatas y Lenguajes Formales 4

TEMA 3: GRAMTICAS FORMALES


DESCRIPCIN INFORMAL Y EJEMPLOS (3)
L = nmeros naturales
Natural Digito | DigitoPos Ceros Natual DigitoPos 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 G= Digito 0 | DigitoPos Ceros 0 Ceros |

L = w {a, b}* w a = w b , w a = nmero de a - es

S aB | bA | G = A aS | bAA B bS | aBB
Teora de Autmatas y Lenguajes Formales 5

TEMA 3: GRAMTICAS FORMALES


DESCRIPCIN FORMAL. CONCEPTOS Una gramtica es una cudrupla G = (N,T,P,S) donde:
{ N: conjunto o alfabeto de smbolos no terminales (variables). { T: conjunto o alfabeto de smbolos terminales (constantes). { Debe cumplirse que N T = . Notamos = N T alfabeto de la gramtica. { S N: smbolo inicial o axioma de la gramtica. { P: conjunto de producciones o reglas de produccin.

P = * N * , *

Observemos que debe contener al menos un smbolo no terminal, que puede estar rodeado de un contexto.
Teora de Autmatas y Lenguajes Formales 6

TEMA 3: GRAMTICAS FORMALES


Derivaciones. Sentencias (1) Sea G = (N,T,P,S) una gramtica, y , , , , , ... palabras de *. Entonces: { se deriva de en un paso de derivacin, o es una derivacin directa de , notado como G , si existen dos cadenas 1,2 * y una produccin P, tales que = 12 y = 12 .
{ Notamos como *G al cierre reflexivo y transitivo de G. Es decir, *G ( es derivable o se deriva de ) si existe una sucesin de cadenas inermedias 1,2, ..., n, tales que = 1 G 1 ... G n = . Si n = 0 entonces = .
Teora de Autmatas y Lenguajes Formales 7

TEMA 3: GRAMTICAS FORMALES


Derivaciones. Sentencias (2) z Una derivacin *G se llama ms a la derecha, si en cada paso de derivacin directa se expande el smbolo no terminal ms a la derecha. z Respectivamente se puede hacer una definicin para derivacin ms a la izquierda. z x * es una forma sentencial de G si S *G x (se deriva del axioma S). Si adems x T * , entonces se dice que x es una sentencia.
Ejemplo: Respecto a G = {S aS|a|aA|b|bA|; A b|bA} Una forma sentencial sera: S *G aaBb. Una sentencia sera: S *G aabb.
Teora de Autmatas y Lenguajes Formales 8

TEMA 3: GRAMTICAS FORMALES


Lenguaje generado por una gramtica. (1) z Se llama lenguaje generado por G, o lenguaje asociado a G, al conjunto de las sentencias de G. Es decir, al conjunto: L(G) = {x T * | S *G x}

Teora de Autmatas y Lenguajes Formales

TEMA 3: GRAMTICAS FORMALES


EJEMPLO z Cul es el lenguaje generado por G = (T,N,P,S)? T = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) N = (N, C) S=N P = {N NC | C, C 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}

Teora de Autmatas y Lenguajes Formales

10

TEMA 3: GRAMTICAS FORMALES


Lenguaje generado por una gramtica. (2) z Dos gramticas G1 y G2 son equivalentes cuando generan el mismo lenguaje: L(G1) = L(G2). Observaciones:
{ La equivalencia de gramticas es una propiedad indecidible, y por tanto, cualquier otro problema que pueda plantearse como tal. { Es posible demostrar equivalencia entre dos gramticas particulares. Lo que no puede darse es un mtodo general de prueba nico para cualquier par de gramticas.
Teora de Autmatas y Lenguajes Formales 11

TEMA 3: GRAMTICAS FORMALES


EJEMPLO z Probar que G y G son gramticas equivalentes. G = ({S}, {a,b}, S, {S aSb | }) G = ({S}, {a,b}, S, {S aSb | aaSbb | })

Teora de Autmatas y Lenguajes Formales

12

TEMA 3: GRAMTICAS FORMALES


rboles de derivacin y de sntesis (1) Dada una gramtica G = (N,T,P,S), un rbol de derivacin o anlisis para una palabra x T * es un rbol donde:
{ Los nodos son smbolos de {}. { La raz es S. { Los nodos interiores son smbolos no terminales (de N). { Las hojas son smbolos terminales T y {}. { Si los hijos de un nodo con etiqueta A tienen etiquetas x1, x2, ..., xn, entonces existe en P una produccin A x1x2...xn.
Teora de Autmatas y Lenguajes Formales 13

TEMA 3: GRAMTICAS FORMALES


rboles de derivacin y de sntesis (2)
Ejemplo:

Observaciones: { Cada palabra puede tener ms de un rbol de derivacin. { Algunas veces usaremos rboles de derivacin con raz distinta de S, para otras derivaciones A *G x T *
Teora de Autmatas y Lenguajes Formales 14

TEMA 3: GRAMTICAS FORMALES


rboles de derivacin y de sntesis (3) Dada una gramtica G = (N,T,P,S), un rbol de sntesis de G es un rbol donde: { Los nodos son formas sentenciales: w * | S *G w. { La raz es S. { Los nodos interiores contienes smbolos de N. { Cada hijo es una derivacin en un paso de su padre. { Las hojas son sentencias.

Teora de Autmatas y Lenguajes Formales

15

TEMA 3: GRAMTICAS FORMALES


rboles de derivacin y de sntesis (4) Ejemplo:

Teora de Autmatas y Lenguajes Formales

16

TEMA 3: GRAMTICAS FORMALES


Gramticas ambiguas (1) z Dada una gramtica G = (N,T,P,S). Una sentencia x T * se denomina ambigua si puede obtenerse por ms de un rbol de derivacin (o equivalentemente, ms de una derivacin ms a la izquierda o ms a la derecha).
S S S S S a a b b a a b b

Teora de Autmatas y Lenguajes Formales 17

TEMA 3: GRAMTICAS FORMALES


Gramticas ambiguas (2) z Una gramtica G se denomina ambigua si el lenguaje que genera contiene alguna sentencia ambigua. Observaciones: { La ambigedad es una propiedad indecidible. { La condicin de ambigedad se aplica a las gramticas y no a los lenguajes. (Un mismo lenguaje puede ser generado por varias gramticas equivalentes). z Un lenguaje se denomina inherentemente ambiguo si no existe una gramtica no ambigua que lo genere.
Teora de Autmatas y Lenguajes Formales 18

TEMA 3: GRAMTICAS FORMALES


Gramticas limpias (1) z Cuando tenemos unas gramtica, esta puede contener reglas o smbolos que podran suprimirse o modificarse de cara a mejorar la estructura de la gramtica y a hacerla ms simple. z A este proceso se le denomina simplificacin o limpieza de gramticas. z Veamos algunas de las reglas o smbolos que se consideran innecesarios.

Teora de Autmatas y Lenguajes Formales

19

TEMA 3: GRAMTICAS FORMALES


Gramticas limpias (2)
z Smbolos inaccesibles: son aquellos a los que nunca se puede llegar mediante secuencias de derivaciones. z Smbolos no generativos: son aquellos smbolos no terminales que nunca van a producir cadenas de terminales (sentencias). z Producciones unitarias: son aquellas reglas que tienen el formato A B, A,B N. Estas reglas no aportan nada y se podran evitar. z Producciones nulas: son reglas del tipo A . Si L(G), entonces al menos tendr que haber una produccin nula en la gramtica; no obstante, deben evitarse en lo posible.
Teora de Autmatas y Lenguajes Formales 20

TEMA 3: GRAMTICAS FORMALES


JERARQUA DE CHOMSKY (1) Sea G = (N,T,P,S) una gramtica con P. Un lenguaje se dice de tipo i (i = 0, 1, 2, 3), si puede ser generado por una gramtica de tipo i, y no de tipo i+1. Cada una de las gramticas incluye a las siguientes: G3 G2 G1 G0 Entonces segn las caractersticas de , Chomsky establece la siguiente jerarqua (de ms general a ms particular):
Teora de Autmatas y Lenguajes Formales 21

TEMA 3: GRAMTICAS FORMALES


JERARQUA DE CHOMSKY (2)
{ Gramticas de TIPO 0 o generales: Producciones: , con * N * y *. { Gramticas de TIPO 1 o sensibles al contexto: Producciones: 1A2 12, con 1,2 *, A N, y +. z Esto no significa que A P. z Aunque , excepcionalmente se admite la produccin S .
Teora de Autmatas y Lenguajes Formales 22

TEMA 3: GRAMTICAS FORMALES


JERARQUA DE CHOMSKY (3)
{ Gramticas de TIPO 2 o libres del contexto: Producciones: A , con A N y +. z Caso particular del TIPO 1 con 1 = 2 = . z Aunque , excepcionalmente se admite la produccin S .

Teora de Autmatas y Lenguajes Formales

23

TEMA 3: GRAMTICAS FORMALES


JERARQUA DE CHOMSKY (4)
{ Gramticas de TIPO 3 o regulares: Producciones: Lineal derecha: A a|aB, con A,B N, a T. Lineal izquierda: A a|Ba, con A,B N, a T. z En una misma gramtica no pueden aparecer producciones de ambos tipos. z Excepcionalmente se admite la produccin S .

Teora de Autmatas y Lenguajes Formales

24

TEMA 3: GRAMTICAS FORMALES


EJEMPLOS JERARQUA DE CHOMSKY (1) TIPO 0 G = { {S, A, B}, {0, 1}, S, P } P = { S 0SAB | 01B, AB BA, 1A 11, 1B 1 } L(G) = { 0n1n | n 1}

Teora de Autmatas y Lenguajes Formales

25

TEMA 3: GRAMTICAS FORMALES


EJEMPLOS JERARQUA DE CHOMSKY (2) TIPO 1 G = { {S, A}, {0, 1}, S, P } P = { S 0SA | 01, 1A 11 } L(G) = { 0n1n | n 1}

Teora de Autmatas y Lenguajes Formales

26

TEMA 3: GRAMTICAS FORMALES


EJEMPLOS JERARQUA DE CHOMSKY (3) TIPO 2 G = { {S}, {0, 1}, S, P} P = { S 0S1, S 01 } L(G) = { 0n1n | n 1}

Teora de Autmatas y Lenguajes Formales

27

TEMA 3: GRAMTICAS FORMALES


EJEMPLOS JERARQUA DE CHOMSKY (4) TIPO 3 G = { {S, A}, {0, 1}, S, P} P = { S 0 S | 0 A, A 1A | 1 } L(G) = { 0n1m | n, m 1}

Teora de Autmatas y Lenguajes Formales

28

TEMA 3: GRAMTICAS FORMALES


PROPIEDADES DE LAS GRAMTICAS REGULARES (1)
Lema de Eliminacin de Ciclos

Si G = (N,T,P,S) es una gramtica regular lineal derecha (izquierda), existe una gramtica regular lineal derecha (izquierda) G = (N,T,P,S) equivalente a G sin producciones del tipo A aS.

Teora de Autmatas y Lenguajes Formales

29

TEMA 3: GRAMTICAS FORMALES


PROPIEDADES DE LAS GRAMTICAS REGULARES (2)
{ Demostracin: (slo la parte constructiva): 1. N = N {S}, S nuevo smbolo inicial. 2. P : Por cada S P, , aadimos S . Sustituimos cada produccin A aS por A aS. Si S P, aadimos A a por cada produccin A aS.
{ Ejemplo: P = { S 1A | 1 | , A 0S } P = { S 1A | 1 | , S 1A | 1, A 0S | 0 }
Teora de Autmatas y Lenguajes Formales 30

TEMA 3: GRAMTICAS FORMALES


PROPIEDADES DE LAS GRAMTICAS REGULARES (3) Equivalencia entre gramtica regular lineal derecha y gramtica regular lineal izquierda Si G = (N,T,P,S) es una gramtica regular lineal derecha, existe una gramtica regular lineal izquierda G = (N,T,P,S) equivalente a G.

Teora de Autmatas y Lenguajes Formales

31

TEMA 3: GRAMTICAS FORMALES


PROPIEDADES DE LAS GRAMTICAS REGULARES (4)
{ Demostracin: (slo la parte constructiva): 1. Eliminamos ciclos en S de G. 2. Construimos un grafo dirigido H = (V, A), donde: V = N {} (vrtices), y A = {(x,y,e) = x e y} (aristas), donde: Si A aB P, entonces (A, B, a) A. Si A a P, entonces (A, , a) A. Si S P, entonces (S, , ) A. 3. Invertimos las aristas, y renombramos con S y S con . 4. Reconstruimos la gramtica a partir del nuevo grafo, invirtiendo el proceso 2, con producciones a la izquierda.
Teora de Autmatas y Lenguajes Formales 32

TEMA 3: GRAMTICAS FORMALES


EJEMPLO G = { {S, A, B}, {0, 1}, S, P } P = { S 1A | 1 | , B 1A | 1, A 0B | 0 } P = { S B1 | A0 | 1 | , B A0, A B1 | 1 }
1

S
1

0 1 0 1

A
1 0 0

S
1
Teora de Autmatas y Lenguajes Formales

B
33

TEMA 3: GRAMTICAS FORMALES


PROBLEMAS 1. Dada la gramtica N = {S, A}, T = {0, 1}; P = {S 0A, A 0A | 0S| 1}. { De qu tipo es? { Expresar el lenguaje que genera. { Hallar otra gramtica que genere el mismo lenguaje pero que incluya la palabra vaca. 2. Construir la gramtica que genere el lenguaje L = {aibi | i 0} {bjaj | j 0}.

Teora de Autmatas y Lenguajes Formales

34

TEMA 3: GRAMTICAS FORMALES


PROBLEMAS 3. Dada la gramtica G = ({S,A,D,E}, {a,c,d,e}, S, {S aA|a, A cD|eE, E aS|c, D d}). { Indicar de qu tipo es. { Describir el lenguaje que genera. { Obtener una gramtica equivalente lineal por la izquierda. 4. Dados los siguientes alfabetos 1 = {1,2,3,4,5,6,7,8} 2 = {a,b,c,d,e,f,g,h} y los lenguajes L1(1) y L2(2) . Definir los lenguajes L1L2, L1L2 y (L1L2)2.
Teora de Autmatas y Lenguajes Formales 35