Lenguajes Regulares y Autómatas Finitos - Clase 6

34
LENGUAJES REGULARES Y AUTÓMATAS FINITOS U.T.N. – F.R.T. S. y S. de los L. GRAMÁTICAS REGULARES (GR): Recordemos..... : Las GR corresponden al Tipo 3 de la Jerarquía de Chomsky. ING. JORGE BUABUD Sus reglas pueden tener un formato regular por la derecha o regular por la izquierda, pero no ambos. Tienen la capacidad de generar solo Lenguajes Regulares. Sirven para describir el Nivel Lexicográfico de un Lenguaje. El modelo aceptor correspondiente es el Autómata Finito. Su formato estándar es: N 1 t N 2 , N t , S →λ λ λ

description

Gramáticas Regulares. Expresiones Regulares. Ecuaciones Características de una GR. Obtener la ER de una GR. Derivada de una ER. Obtener la GR de una ER.

Transcript of Lenguajes Regulares y Autómatas Finitos - Clase 6

Page 1: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

Recordemos..... :

� Las GR corresponden al Tipo 3 de la Jerarquía de Chomsky.

ING. JORGE BUABUD

� Sus reglas pueden tener un formato regular por la derecha o

regular por la izquierda, pero no ambos.

� Tienen la capacidad de generar solo Lenguajes Regulares.

� Sirven para describir el Nivel Lexicográfico de un Lenguaje.

� El modelo aceptor correspondiente es el Autómata Finito.

� Su formato estándar es: N1 →→→→ t N2 , N →→→→ t , S →→→→ λλλλ

Page 2: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

Obtención del Formato Estándar:

Pasos a seguir para obtener el Formato Estándar de Chomsky tipo 3:

ING. JORGE BUABUD

Pasos a seguir para obtener el Formato Estándar de Chomsky tipo 3:

1.- Eliminar reglas innecesarias.

2.- Eliminar el axioma S de la derecha, si es que λλλλ ∈∈∈∈ L(GR).

3.- Eliminar reglas de redenominación o renombrado: N1 →→→→ N2

4.- Eliminar reglas de borrado: N→→→→ λλλλ

5.- Realizar las sustituciones necesarias para reducir a uno la longitud de

las secuencias de terminales que hubiera en las reglas.

Page 3: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

1.- Eliminar reglas innecesarias: Son producciones que no aportan nada.1.1.- Reglas que tienen no-terminales inútiles, es decir aquellos N que

no cumplen con: S ⇒⇒⇒⇒* ααααNββββ y N⇒⇒⇒⇒* w

ING. JORGE BUABUD

no cumplen con: S ⇒⇒⇒⇒* ααααNββββ y N⇒⇒⇒⇒* w donde S es el axioma, w ∈∈∈∈ ΣΣΣΣT* y αααα,ββββ ∈∈∈∈ ΣΣΣΣ*

1.2.- Reglas de la forma: N→→→→N

2.- Eliminar el axioma de la derecha: Si el axioma S aparece en la derecha de alguna producción y S ⇒⇒⇒⇒* λλλλ , entonces se realiza elsiguiente artificio:

2.1.- se introduce un nuevo símbolo inicial S12.2.- se agrega a las producciones originales las reglas: S1 →→→→ S | λλλλ

Page 4: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

3.- Eliminar reglas de redenominación: Se reemplaza las producciones de la forma N1→→→→N2 , por las reglas que surgen de reemplazar en las mismas N2 por las partes derechas de sus producciones.

ING. JORGE BUABUD

mismas N2 por las partes derechas de sus producciones.

4.- Eliminar reglas de borrado: Se reemplaza las producciones de laforma N→λ→λ→λ→λ , por las reglas que surgen de reemplazar N por λλλλ, en todas las reglas donde figure N; a excepción de la regla S →→→→ λλλλ ,donde S es el axioma.

5.- Reducción de longitud: Se reemplaza las reglas de la formaN1 →→→→ t1t2...tKN2 por las reglas N1→→→→t1M1 , M1→→→→t2M2 , .... , MK-1→→→→ tKN2donde los Mi son nuevos no-terminales (en forma similar si la GR espor la izquierda).

Page 5: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

Ejemplo de obtención del formato estándar de una GR:

Supongamos la siguiente GR por la derecha:

ING. JORGE BUABUD

S →→→→ abaB | bb | λλλλ | A

A →→→→ baS | aabC | a

B →→→→ aaA | B | λλλλ

C →→→→ baC | aC

D →→→→ bbB | aaa | abaD

E →→→→ aaE | abC

G = ⟨⟨⟨⟨ ΣΣΣΣN , ΣΣΣΣT , S , P ⟩⟩⟩⟩

ΣΣΣΣN = {S, A, B, C, D, E}

ΣΣΣΣT = {a, b}

P =

Page 6: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

1) Eliminación de reglas innecesarias:

S →→→→ abaB | bb | λλλλ | AA →→→→ baS | a

ING. JORGE BUABUD

A →→→→ baS | aB →→→→ aaA | λλλλ

S1 →→→→ S | λλλλS →→→→ abaB | bb | λλλλ | AA →→→→ baS | aB →→→→ aaA | λλλλ

2) Eliminación del axioma a la derecha:

Page 7: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

3) Eliminación de reglas de redenominación:

S1 →→→→ abaB | bb | baS | a | λλλλS →→→→ abaB | bb | λλλλ | baS | a

ING. JORGE BUABUD

S →→→→ abaB | bb | λλλλ | baS | aA →→→→ baS | aB →→→→ aaA | λλλλ

4) Eliminación de reglas de borrado:

S1 →→→→ abaB | bb | baS | a | λλλλ | ba | abaS →→→→ abaB | bb | baS | a | ba | abaA →→→→ baS | a | baB →→→→ aaA

Page 8: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

5) Reducción de la longitud:

S1 →→→→ aF | bH | bI | a | λλλλ | bJ | aKF →→→→ bG

ING. JORGE BUABUD

F →→→→ bGG →→→→ aBH →→→→ bI →→→→ aSJ →→→→ a K →→→→ bJS →→→→ aF | bH | bI | a | bJ | aKA →→→→ bI | a | bJB →→→→ aLL →→→→ aA

Los otros componentes de G:

ΣΣΣΣN = { S1, A, B, F, G, H, I, J, K, L, S}

ΣΣΣΣT = {a, b}

donde S1 es el nuevo axioma

Page 9: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

Equivalencia entre GR por derecha y GR por izquierda:Los dos formatos posibles para una GR son equivalentes.

Veamos un algoritmo para pasar del formato por izquierda al formato

ING. JORGE BUABUD

Veamos un algoritmo para pasar del formato por izquierda al formato por derecha, partiendo de una GR en su forma estándar:1.- Si el axioma figura en alguna parte derecha de las reglas, se procede

a transformar la GR de la siguiente forma:1.1.- Agregar un nuevo símbolo no-terminal L1.2.- Si S es el axioma, t∈Σ∈Σ∈Σ∈ΣT y N∈Σ∈Σ∈Σ∈ΣN , entonces:

1.2.1.- Para cada regla de la forma S →→→→ Ntse crea una regla L →→→→ Nt

1.2.2.- Cada regla de la forma N →→→→ Stse cambia por la regla N →→→→ Lt

Page 10: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

2.- Se crea un grafo dirigido:2.1.- Se crea un nodo para cada no-terminal N y otro para λλλλ2.2.- Para cada regla de la forma N1 →→→→ N2t

ING. JORGE BUABUD

1 2

se crea un arco desde el nodo N1 al nodo N2 con rótulo t2.3.- Para cada regla de la forma N →→→→ t

se crea un arco desde el nodo N al nodo λλλλ con etiqueta t2.4.- Si existe una regla S →→→→ λλλλ

se crea un arco sin rótulo desde el nodo S al nodo λλλλ

3.- Se transforma este grafo de la siguiente manera:3.1.- Se intercambian las etiquetas de los nodos S y λλλλ3.2.- Se invierte el sentido de todos los arcos

Page 11: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

4.- Se transforma el grafo en un conjunto de reglas:4.1.- Para cada arco etiquetado con t que va del nodo N1 al nodo N2

se crea la regla N1 →→→→ tN2

ING. JORGE BUABUD

se crea la regla N1 →→→→ tN2

4.2.- Para cada arco etiquetado con t que va del nodo N al nodo λλλλse crea la regla N →→→→ t

4.3.- Si existe un arco del nodo del axioma S al nodo de λλλλse crea una regla S →→→→ λλλλ

En forma similar se puede definir un algoritmo para transformar una GR por derecha en su formato por izquierda equivalente.

Page 12: Lenguajes Regulares y Autómatas Finitos - Clase 6

U.T.N. – F.R.T. S. y S. de los L.

Ejemplo de conversión de GR por Izquierda a Derecha:

Supongamos una GR por izquierda con las siguientes producciones:

→ → → → →→→→ →→→→

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

GRAMÁTICAS REGULARES (GR):

ING. JORGE BUABUD

S → → → → Ba | Ab , A →→→→ Sa | Ab , B→→→→ Bb | a1.- Agregamos un nuevo no-terminal C y las reglas:

S → → → → Ba | Ab , A →→→→ Ca | Ab , B →→→→ Bb | aC → → → → Ba | Ab

2.- Grafo: b

SA

B

C

λλλλa a

b aa

b b

Page 13: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

GRAMÁTICAS REGULARES (GR):

3) Transformamos el grafo:b

λλλλB Sa a

b a

ING. JORGE BUABUD

4) Creamos las reglas de la GR por la derecha a partir del grafo:

S → → → → aBA →→→→ bC | bA | bB →→→→ aC | bB | aC → → → → aA

λλλλA C

b aa

b b

Page 14: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

EXPRESIONES REGULARES (ER):

Lenguaje Regular (LR):

Un LR es el lenguaje generado por una GR y se define mediante

ING. JORGE BUABUD

Un LR es el lenguaje generado por una GR y se define mediante las siguientes cláusulas:

1) Todo lenguaje finito es un LR

2) Si L1 y L2 son LR entonces L1∪∪∪∪L2 y L1.L2 también son LR

3) Si L es un LR entonces L* también es un LR

4) Todo LR se puede definir mediante las cláusulas 1, 2 y 3

Page 15: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

EXPRESIONES REGULARES (ER):

Ejemplos de LR: Consideremos el alfabeto ΣΣΣΣ={a, b}L 1 = { } = ΦΦΦΦ

ING. JORGE BUABUD

L 1 = { } = ΦΦΦΦL 2 = {λλλλ} = L λλλλL 3 = {a, b}L 4 = {aa, ab, ba, bb} L 5 = {λλλλ, aba, aaa, bab, bbb}L 6 = L3 . L5 ∪∪∪∪ L 4

L 7 = L5* . L 4

L 8 = L4 . L4*

Page 16: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Expresión Regular (ER):

Es una forma algebraica que se define sobre un alfabetobase ΣΣΣΣ y un alfabeto especial ΣΣΣΣ’ = {+, *, , ΦΦΦΦ , λλλλ , ( , ) }, con

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

base ΣΣΣΣ y un alfabeto especial ΣΣΣΣ’ = {+, *, •••• , ΦΦΦΦ , λλλλ , ( , ) }, con Σ y ΣΣΣΣ’ disjuntos, mediante las siguientes cláusulas:

1) ΦΦΦΦ, λλλλ, x∈Σ∈Σ∈Σ∈Σ son ER

2) Si E1 y E2 son ER entonces E1+E2 y E1.E2 también son ER

3) Si E es una ER entonces E* y (E) también son ER

4) Todo ER se puede definir mediante las cláusulas 1, 2 y 3

Page 17: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Correspondencia entre las ER y los LR:

Aunque es casi obvio,

EXPRESIONES REGULARES (ER):

LRER

ING. JORGE BUABUD

Aunque es casi obvio,

la siguiente tabla

formaliza la relación

entre ER y LR:

L *R*

L1.L2R1.R2

L1∪∪∪∪L2R1+R2

{x}x

{λλλλ}λλλλ{ }ΦΦΦΦLRER

Page 18: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

EXPRESIONES REGULARES (ER):

Ejemplos de ER: Consideremos el alfabeto base ΣΣΣΣ={a, b}E1 = ΦΦΦΦ

ING. JORGE BUABUD

E1 = ΦΦΦΦE2 = λλλλE3 = a+bE4 = aa+ab+ba+bb E5 = λλλλ+aba+aaa+bab+bbbE6 = E3.E5+E4 = (a+b).(λλλλ+aba+aaa+bab+bbb)+(aa+ab+ba+bb)E7 = E5* . E4 = (λλλλ+aba+aaa+bab+bbb)*.(aa+ab+ba+bb)E8 = E4 . E4* = (aa+ab+ba+bb).(aa+ab+ba+bb)*

Page 19: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Algunas aplicaciones de las ER:

En general las ER se asocian con los lenguajes regulares y están presentes en diversas aplicaciones, por ejemplo:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

están presentes en diversas aplicaciones, por ejemplo:

1) Para descripción de patrones textuales:

La mayoría de los procesadores de texto utilizan variantes de las ER para facilitar la búsqueda de palabras en un texto, como los “comodines” del Word . (Ver el help del MS-Word 2007).

También se utilizan en la representación de cadenas de caracteres en muchos sistemas operativos, como en el GNU/Linux. (Ver página web http://iie.fing.edu.uy/~vagonbar/unixbas/expreg.htm)

Page 20: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

2) Para representar estructuras algorítmicas:

En el campo del análisis de algoritmos se utilizan ER para representar las estructuras básicas de control, por ejemplo:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

representar las estructuras básicas de control, por ejemplo:

b

cd

e

a

a.(b.(c+d))*.e

Page 21: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

3) Para describir el léxico de un lenguaje de programación:

Por ejemplo para el lenguaje C++:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

PalabrasClaves = main+if+else+while+do+switch+case+......

Dígitos = 1+2+3+4+5+6+7+8+9

NúmeroEnteroSinSigno = 0+Dígitos.(Dígitos+0)*

Letra = a+b+c+d+..............+z

Identificador = (Letra+ _ ).(Letra+ _ +Dígitos+0)*

Page 22: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Propiedades de las ER:

Existen muchas propiedades asociadas a las ER, a continuación se muestran las más importantes:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

se muestran las más importantes:

1) ΦΦΦΦ* = λλλλ

2) E . E* = E* . E

3) E* = λλλλ + E . E*

4) (E1* . E2*)* = (E 1+ E2)* = (E1* . E2)* . E1*

5) E* = (λλλλ+E+E2+E3+....+EN-1) . (EN)*

Page 23: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Sistema de Ecuaciones Características de una GR:Dada una GR se puede obtener un conjunto de definiciones

regulares de la forma: X = R + T.X , donde X∈Σ∈Σ∈Σ∈Σ y (R,T)

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

regulares de la forma: X = R + T.X , donde X∈Σ∈Σ∈Σ∈ΣN y (R,T)

son ER sobre ΣΣΣΣ, del siguiente modo:

1) Agrupar todas las reglas que tengan igual parte izquierda

2) Igualar cada no-terminal X con la unión de todas las partes derechas correspondientes, usando el conectivo “+”

3) Sustituir la yuxtaposición de símbolos con la concatenación de los mismos, usando el conectivo “••••”

Page 24: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Ejemplo de Ecuaciones Características de una GR:

G = ⟨⟨⟨⟨ ΣΣΣΣN , ΣΣΣΣT , P , S ⟩⟩⟩⟩

EXPRESIONES REGULARES (ER):

Sistema de Ecuaciones

ING. JORGE BUABUD

ΣΣΣΣN = { S, A, B, C }

ΣΣΣΣT = { a, b, c }

P: S →→→→ aA | bB | cC

A →→→→ bA | aB

B →→→→ cB | a

C →→→→ cC | c

Sistema de Ecuaciones Características

S = a.A+b.B+c.C

A = b.A+a.B

B = c.B+a

C = c.C+c

Page 25: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Solución de una ecuación genérica: X=R+T.X

Mediante los siguientes pasos podemos deducir una expresión para X tal que cumpla dicha igualdad:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

para X tal que cumpla dicha igualdad:1) Partimos de la propiedad de la expresión regular T:

T* = λλλλ + T . T*2) Pos-concatenamos con la expresión regular R:

T*.R = ( λλλλ + T . T*).R3) Resolvemos:

T*.R = R + T . T*.R

4) Por simple comparación deducimos que: X = T*.R

Page 26: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Obtención de la ER del lenguaje generado por una GR:

1) Se plantea el Sistema de Ecuaciones Características.

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

1) Se plantea el Sistema de Ecuaciones Características.

2) Se resuelve el sistema mediante método de sustitución y

aplicación de la solución de la ecuación genérica.

3) La ER del lenguaje generado por la GR, es la solución

correspondiente al axioma de la gramática.

Page 27: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Ejemplo de obtención de la ER de una GR:

Dando continuidad al ejemplo anterior de ecuaciones características, tenemos:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

características, tenemos:

C = c*.c

B = c*.a

A = b.A+a.c*.a

A = b*.a.c*.a

S = a.b*.a.c*.a+b.c*.a+c.c*.c

S = a.b*.a.c*.a+b.c*.a+c.c.c*

Page 28: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Derivada de una ER:La derivada de una expresión regular “E” respecto a un símbolo “x” perteneciente a un alfabeto “ΣΣΣΣ”, se define como:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

“x” perteneciente a un alfabeto “ΣΣΣΣ”, se define como:

Dx(E) = {w / x.w ∈∈∈∈ E}Es decir del conjunto de palabras “w” que están representadas por “E”, se selecciona aquellas que comienzan por el símbolo “x” respecto al que se deriva y la derivada será el conjunto de los restos de esas palabras sin el prefijo “x”.

Page 29: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Propiedades de la Derivada de una ER:Para todo x,y∈Σ∈Σ∈Σ∈Σ se cumple que:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

1) Dx(ΦΦΦΦ) = ΦΦΦΦ 2) Dx(λλλλ) = ΦΦΦΦ

3) Dx(x) = λλλλ 4) Dx(y) = ΦΦΦΦ con y≠≠≠≠x

5) Dx(E1+E2) = Dx(E1)+Dx(E2)

6) Dx(E1.E2) = Dx(E1).E2+f(E1).Dx(E2) con f(E1)=

7) Dx(E*) = Dx(E).E*

λλλλ si λ∈λ∈λ∈λ∈E1

ΦΦΦΦ si λ∉λ∉λ∉λ∉E1

Page 30: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Ejemplo de Derivadas de una ER:Supongamos la siguiente ER: E = a*.b.(a+b)*.b

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

� Da(E) = Da(a*).b.(a+b)*.b+f(a*).Da(b.(a+b)*.b)

= Da(a).a*.b.(a+b)*.b+λλλλ.(Da(b).(a+b)*.b+f(b).Da((a+b)*.b))

= λλλλ.a*.b.(a+b)*.b+ΦΦΦΦ.(a+b)*.b+ΦΦΦΦ.Da((a+b)*.b)

= a*.b.(a+b)*.b+ΦΦΦΦ+ΦΦΦΦ = a*.b.(a+b)*.b = E

� Db(E) = Db(a*).b.(a+b)*.b+f(a*).Db(b.(a+b)*.b)

= ΦΦΦΦ.b.(a+b)*.b+λλλλ.(Db(b).(a+b)*.b+f(b).Db((a+b)*.b))

= ΦΦΦΦ+λλλλ.(a+b)*.b+ΦΦΦΦ.Db((a+b)*.b) = (a+b)*.b

Page 31: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Composición de Derivadas de una ER:Se puede componer derivadas de la siguiente forma:

EXPRESIONES REGULARES (ER):

ING. JORGE BUABUD

Dxy(E) = Dy(Dx(E))

En el ejemplo anterior tendríamos:

� Dab(E) = Db(Da(E)) = Db(E) = (a+b)*.b

� Dba(E) = Da(Db(E)) = Da((a+b)*.b)

= Da((a+b)*).b+f((a+b)*).Da(b)

= Da(a+b).(a+b)*.b+λλλλ.ΦΦΦΦ = (a+b)*.b

Page 32: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Obtención de la GR que genera el lenguaje de una ER:

Dada una ER E0 y el conjunto D de todas las ER Ei distintas que se obtienen por derivación compuesta con respecto a todos los símbolos x

EXPRESIONES REGULARES (ER):

obtienen por derivación compuesta con respecto a todos los símbolos x de ΣΣΣΣ, el alfabeto base de E0 ; los componentes de la gramática G que genera el lenguaje definido por E0 son:

ΣΣΣΣN = {E0} ∪∪∪∪ D , ΣΣΣΣT = ΣΣΣΣ , S = E0

ING. JORGE BUABUD

P =

Si Dx(E1)=E2 , E2≠≠≠≠ λλλλ , E2≠Φ≠Φ≠Φ≠Φ , crear la regla E1 →→→→ x E2

Si λ∈λ∈λ∈λ∈Dx(E1) , crear una regla E1 →→→→ xSi λ∈λ∈λ∈λ∈E0 , crear una regla E0 →→→→ λλλλSi Dx(E1)=ΦΦΦΦ , no crear ninguna regla

Page 33: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

Ejemplo de obtención de una GR a partir de una ER:

Partamos de la ER del ejemplo anterior: E0 = a*.b.(a+b)*.b

EXPRESIONES REGULARES (ER):

Da(E0) = E0

Db(E0) = (a+b)*.b = E1

Da(E1) = E1

Db(E1) = Db((a+b)*.b) = Db((a+b)*).b+f((a+b)*).Db(b)= Db(a+b).(a+b)*.b+λλλλ.λλλλ = (a+b)*.b+λλλλ = E2

Da(E2) = Da(E1)+Da(λλλλ) = E1+ΦΦΦΦ = E1

Db(E2) = Db(E1)+Db(λλλλ) = E2+ΦΦΦΦ = E2

ING. JORGE BUABUD

Page 34: Lenguajes Regulares y Autómatas Finitos - Clase 6

LENGUAJES REGULARES Y AUTÓMATAS FINITOS

U.T.N. – F.R.T. S. y S. de los L.

De tal manera que:

ΣΣΣΣN = {E0 , E1 , E2}

EXPRESIONES REGULARES (ER):

ΣΣΣΣT = {a, b}

S = E0

P = ≡ ≡ ≡ ≡

ING. JORGE BUABUD

E0 →→→→ aE0 | bE1

E1 →→→→ aE1 | bE2 | b

E2 →→→→ aE1 | bE2 | b

E0 →→→→ aE0 | bE1

E1 →→→→ aE1 | bE1 | b

con ΣΣΣΣN = {E0 , E1}