Expresiones Regulares - PowerPoint PPT Presentation

About This Presentation
Title:

Expresiones Regulares

Description:

Expresiones Regulares Curso de Compiladores Preparado por Manuel E. Berm dez, Ph.D. Associate Professor University of Florida ... – PowerPoint PPT presentation

Number of Views:213
Avg rating:3.0/5.0
Slides: 44
Provided by: ufl88
Learn more at: https://www.cise.ufl.edu
Category:

less

Transcript and Presenter's Notes

Title: Expresiones Regulares


1
Expresiones Regulares
Curso de Compiladores
  • Preparado por
  • Manuel E. Bermúdez, Ph.D.
  • Associate Professor
  • University of Florida

2
Expresiones Regulares
  • Una descripción compacta y fácil de leer de un
    lenguaje regular.
  • Usamos operadores para denotar constructores de
    lenguajes, y construir lenguajes complejos a
    partir de lenguajes atómicos sencillos.

3
Expresiones Regulares
  • Definición Una expresión regular sobre un
    alfabeto S se define recursivamente
  • ø denota el lenguaje ø
  • e denota el lenguaje e
  • a denota el lenguaje a, para todo a ? S.
  • (P Q) denota L(P) U L(Q), donde P, Q son
    e.r.s.
  • (PQ) denota L(P)L(Q), donde P, Q son e.r.s.
  • P denota L(P), donde P is una e.r.
  • Para evitar paréntesis excesivos, asumimos
    asociatividad izquierda, con la siguiente
    precedencia (de mayor prioridad a menor
    prioridad) , ,

4
Expresiones Regulares
  • Ejemplos
  • (O 1) una hilera de Os y 1s.
  • (O 1)1 una hilera de Os y 1s, que termina
    en 1.
  • 1O1 una hilera de 1s con un O insertado.
  • Letter (Letter Digit) un identificador.
  • Digit Digit un entero.
  • Quote Char Quote una hilera.
  • Char Eoln un comentario.
  • Char otro comentario.
  • Assumiendo que Char no contiene Quote,
  • eoln, o .

5
Expresiones Regulares
  • Conversión de gramática lineal derecha a
    expresión regular
  • Ejemplo
  • S ? aS R ? aS
  • ? bR
  • ? e
  • Qué significa S ? aS ?
  • L(S) ? aL(S)
  • S ? bR significa L(S) ? bL(R)
  • S ? e significa L(S) ?e

6
Expresiones Regulares
  • Juntas (las tres opciones de S) significan que
  • L(S) aL(S) bL(R) e
  • o bien, S aS bR e
  • Similarmente, R ? aS significa que R aS.
  • Entonces, S aS bR e
  • R aS
  • Sistema de ecuaciones simultáneas, en la cual las
    variables son los no-terminals.

7
Expresiones Regulares
  • Solución del sistema de ecuaciones simultáneas.
  • S aS bR e
  • R aS
  • Sustituimos R aS
  • S aS baS e
  • (a ba) S e
  • Pregunta Qué hacemos con ecuaciones de la
    forma
  • X ?X ß ?

8
Expresiones Regulares
  • Respuesta ß ? L(x), así que
  • aß ? L(x),
  • aaß ? L(x),
  • aaaß ? L(x),
  • y entonces, aß L(x).
  • En nuestro caso,
  • S (a ba) S e
  • (a ba) e
  • (a ba)

9
Expresiones Regulares
  • Algoritmo 5
  • Gramática Lineal Derecha ? Expresión Regular
  • 1. A a1 a2 an si A ? a1
  • ? a2
  • .
  • .
  • .
  • ? an

10
Expresiones Regulares
  • Si la ecuación es de la forma X a, donde X no
    aparece in a, se reemplaza toda ocurrencia de X
    con a en todas las demás ecuaciones, y se elimina
    la ecuación X a.
  • Si la ecuación es de la forma X aX ß,
    donde X no occurre en a o en ß, se reemplaza la
    ecuación con X aß.
  • Nota Se puede necesitar manipulación algebraica
    para obtener la forma X aX ß.
  • Importante La concatenación no es conmutativa!!

11
Expresiones Regulares
  • Ejemplo
  • S ? a R ? abaU U ? aS
  • ? bU ? U ? b
  • ? bR
  • S a bU bR
  • R abaU U (aba e) U
  • U aS b
  • Sustituimos R
  • S a bU b(aba e) U
  • U aS b

12
Expresiones Regulares
  • Sustituimos U
  • S a b(aS b) b(aba e)(aS b)
  • a baS bb babaaS babab baS bb
  • (ba babaa)S (a bb babab)
  • Y entonces,
  • S (ba babaa)(a bb babab)

repetidas
13
Lenguajes Regulares
  • Resumiendo
  • RGR RGL DFA
  • Mínimo
  • RE NFA DFA

Listo
Algoritmos 1,2
Algoritmos 3,4
Pronto
Algoritmo 5
14
Expresiones Regulares
  • Algoritmo 6 (Versión 1)
  • Expresión Regular ? FSA (Autómata Finito

  • no-determinístico)
  • Se construye el FSA recursivamente, según la
    estructura de la expresión regular. Cada FSA
  • tiene un estado inicial, y uno final.
  • Conversiones
  • para ø

2
1
15
Expresiones Regulares
  • para e
  • para a
  • para P Q
  • ó
    para P Q

1
a
1
2
P
e
e
1
2
e
e
Q
e
P
Q
e
e
e
1
P
Q
2
16
Expresiones Regulares
e
  • para
    P
  • Ejemplo (b (aba e) a)
  • (b (aba e) a)
  • (b (aba e) a)
  • (b (aba e) a)

e
e
1
P
2
e
b
1
2
a
3
4
b
5
6
17
Expresiones Regulares
a
  • (b (aba e) a)
  • (b (aba e) a)
  • (b (aba e) a)
  • (b (aba e) a)

7
8
9
a
10
11
a
b
e
3
4
5
6
e
7
8
a
18
Expresiones Regulares
  • (b (aba e) a)
  • (b (aba e) a)

a
b
e
3
4
5
6
e
e
12
7
9
8
13
e
a
e
e
b
2
1
e
a
b
e
3
4
5
6
e
e
12
7
9
8
13
e
a
e
e
19
Expresiones Regulares
  • (b (aba e) a)

b
2
1
e
a
b
e
3
e
4
5
6
e
12
7
9
8
13
e
a
e
e
e
10
a
11
20
Expresiones Regulares
  • (b (aba e) a)

e
a
e
e
b
2
14
12
3
4
1
e
e
e
e
5
9
11
e
e
a
6
13
15
7
8
10
a
e
e
e
21
Expresiones Regulares
  • Algoritmo 6 (Versión 2)
  • Expresión Regular ? FSA (Autómata Finito

  • no-determinístico)
  • Punto de inicio

E
22
Expresiones Regulares
  • Reglas de conversión

a
a
e
e
ab
a
b
a
a b
b
23
Expresiones Regulares
  • Algoritmo 6 versión 1
  • Construye FSA de abajo hacia arriba
  • Bueno para máquinas
  • Malo para seres humanos
  • Algoritmo 6 versión 2
  • Construye FSA de arriba hacia abajo
  • Malo para máquinas
  • Bueno para seres humanos

24
Expresiones Regulares
  • Ejemplo (Versión 2)

(a b) (aa bb)
(a b)
aa bb
aa
e
e
bb
a b
a
a
e
e
b
b
a
b
25
Expresiones Regulares
  • Ejemplo (Versión 2)

ba(a b) ab
a
b
a
e
e
a
b
b
26
Lenguajes Regulares
  • Resumiendo
  • RGR RGL DFA
  • Mínimo
  • RE NFA DFA

Listo
Algoritmos 1,2
Algoritmos 3,4
Pronto
Algoritmo 5
Algoritmo 6
27
Autómatas de Estado Finito Determinísticos
(DFAs)
  • Definición Un FSA determinístico se define igual
    que uno no-determinístico, excepto que
  • d Q x S ? Q, en lugar de
  • d Q x S U e ? 2Q
  • Así,
  • y
  • son impossibles.

e
a
a
28
Autómatas de Estado Finito Determinísticos
(DFAs)
  • Cada transición de un DFA consume un símbolo.
    Afortunadamente, los DFAs tiene el mismo poder
    (de reconocimiento) que los NFAs.
  • Teorema Para cada NFA existe un DFA equivalente
    (i.e. que acepta el mismo lenguaje).

29
Autómatas de Estado Finito Determinísticos
(DFAs)
  • Algoritmo 7 Conversión de NFA a DFA
  • Se simulan las transiciones del NFA, con el
    DFA.
  • El estado inicial del DFA es el estado inicial
    del NFA (digamos, S), junto con todos los estados
    alcanzables (con e) desde S.
  • Cada estado del DFA es un subconjunto de los
    estados del NFA.
  • Estados nuevos en el DFA se construyen calculando
    el conjunto de estados alcanzables desde estados
    del NFA, para cada símbolo.
  • Los estados finales del DFA son los que contienen
    al menos un estado final del NFA.

30
Autómatas de Estado Finito Determinísticos
(DFAs)
  • Ejemplo ab ba

NFA
31
Autómatas de Estado Finito Determinísticos
(DFAs)
  • Entrada
  • Estado a b
  • 123 23 456
  • 23 23 6
  • 456 56 ---
  • 6 --- ---
  • 56 56 ---
  • DFA

a
32
Autómatas de Estado Finito Determinísticos
(DFAs)
  • En general, si el NFA tiene N estados, el DFA
    puede tener hasta 2N estados.
  • Ejemplo ba (a b) ab

33
  • Estado a b
  • 0 --- 1
  • 1 234689 ---
  • 234689 34568910 346789
  • 34568910 34568910 34678911
  • 346789 34568910 346789
  • 34678911 34568910 346789

34
Autómatas de Estado Finito Determinísticos
(DFAs)
DFA
a
34568910
b
a
a
b
a
234689
34678911
a
0
1
b
346789
b
b
35
Lenguajes Regulares
  • Resumiendo
  • RGR RGL DFA
  • Mínimo
  • RE NFA DFA

Listo
Algoritmos 1,2
Algoritmos 3,4
Pronto
Algoritmo 5
Algoritmo 6
Algoritmo 7
36
Minimización de Estados
  • Teorema Dado un DFA M, existe un DFA M
    equivalente que es mínimo, i.e. no existe ningún
    otro DFA equivalente con menos estados que M.
  • Definición Una partición de un conjunto S es un
    conjunto de subconjuntos de S, tal que cada
    elemento de S aparece en uno (y solo uno) de esos
    subconjuntos.

37
Minimización de Estados
  • Ejemplo
  • S 1, 2, 3, 4, 5
  • ?1 1, 2, 3, 4, 5
  • ?2 1, 2, 3,, 4, 5
  • ?3 1, 3, 2, 4, 5
  • Nota ?2 es un refinamiento de ?1 , y ?3 es un
    refinamiento de ?2.

38
Minimización de Estados
  • Algorithmo 8 (Minimización de un DFA)
  • Eliminar las transiciones indefinidas
    introduciendo el estado TRAMPA, desde el cual no
    se llega un estado final.
  • Particionar los estados en dos grupos (finales y
    no-finales).
  • Completar la tabla de estados, especificando las
    transiciones de cada grupo a otros.
  • Refinar la partición se desprenden los grupos
    con transiciones distintas.
  • Repetir el paso 3 hasta no haber más
    refinamientos.
  • Determinar los estados finales.

39
Minimización de Estados
a
b
  • Ejemplo
  • ?0 1, 2, 3, 4, 5
  • Estado a b
  • 1 1234 1234
  • 2 1234 1234
  • 3 1234 1234
  • 4 1234 5
  • 5 1234 1234

b
Se desprende 4 de la partición 1,2,3,4
40
Minimización de Estados
  • ?1 1, 2, 3, 4, 5
  • Estado a b
  • 1 123 123
  • 2 123 4
  • 3 123 123
  • 4 123 5
  • 5 123 123
  • Se desprende 2 de la partición 1,2,3

41
Minimización de Estados
a
  • ?2 1, 3, 2, 4, 5
  • Estado a b
  • 1 2 13
  • 3 2 13
  • 2 2 4
  • 4 2 5
  • 5 2 13
  • No más refinamientos
  • DFA Mínimo

b
42
Lenguajes Regulares
  • Resumiendo
  • RGR RGL DFA
  • Mínimo
  • RE NFA DFA

Algoritmos 1,2
Algoritmos 3,4
Algoritmo 5
Algoritmo 8
Algoritmo 6
Algoritmo 7
Listo !
43
Resumen de Lenguajes Regulares
  • La clase más pequeña de la jerarquía de Chomsky.
  • Apropiada para el análisis léxico.
  • Cuatro representaciones RGR, RGL, ER y FSA.
  • Las cuatro son equivalentes (algoritmos de
    transformación).
  • Diversas ventajas y desventajas entre las cuatro
    representaciones, para el diseñador, el
    implementador, y el usuario de un lenguaje.
  • Los FSA se pueden hacer determinísticos y
    mínimos.
Write a Comment
User Comments (0)
About PowerShow.com