Está en la página 1de 14

Autómatas Finitos y

Expresiones Regulares
Expresiones Regulares

 En la aritmética, podemos usar las operaciones + y x para


montar expresiones tales como (5 + 3) x 4.
 Similarmente, podemos usar las operaciones regulares para
montar expresiones describiendo lenguajes, que son
llamadas expresiones regulares.
 Por ejemplo: (0  1)0*
 El valor de una expresión aritmética es un número. En el
ejemplo es 32.
 El valor de una expresión regular es un lenguaje.
 En el ejemplo: El lenguaje de las cadenas binarias que
comienzan con 1 o 0 seguido por un número cualquiera de
0s.
Expresiones Regulares

¿Como obtenemos el valor de (0  1)0* ?


 Primero, los símbolos 0 y 1 son abreviaciones para los
conjuntos {0} y {1}.
 De esa forma, (0  1) significa ({0}  {1}).
 El valor de esa parte es el lenguaje {0,1}.
 Segundo, como el símbolo en álgebra, el símbolo de la
concatenación frecuentemente está implícito en las
expresiones regulares.
 Por consiguiente, (0  1)0* es, en realidad, una
abreviación de (0  1).0*
 La concatenación junta las cadenas de las dos partes
para obtener el valor de la expresión entera.
Expresiones Regulares

 Genéricamente, si  fuera un alfabeto cualquiera, la


expresión regular  describe el lenguaje consistiendo
de todas las cadenas de tamaño 1 sobre ese
alfabeto.
 * describe el lenguaje consistiendo de todas las
cadenas sobre ese alfabeto.
Expresiones Regulares

 ¿Cual es el lenguaje *1?


Es el lenguaje que contiene todas las cadenas que
terminan en 1.
 ¿Y el lenguaje (0 *)  (* 1) ?
Consiste de todas las cadenas que comienzan con 0 o
terminan con 1.
Expresiones Regulares
Precedencia de operadores
 La operación estrella es hecha primero, seguida por
concatenación, y finalmente unión, a menos que
paréntesis sean usados para cambiar el orden usual.
Expresiones Regulares
Definición Formal
Decimos que R es una expresión regular si R fuera:
 a para algún a en el alfabeto ,
 ,
 ,
 (R1  R2), donde R1 y R2 son expresiones regulares,
 (R1 . R2), donde R1 y R2 son expresiones regulares, o
 (R1*), donde R1 es una expresión regular.
En los items 1 y 2, las expresiones regulares a y 
representan los lenguajes {a} y {}, respectivamente.
Expresiones Regulares
Notación
 R+ = RR*
 R* = R+  {}
 RK : concatenación de k’s Rs.
Cuando queremos distinguir entre una expresión regular
R y el lenguaje que ella describe, escribimos L(R) como
siendo el lenguaje de R.
Expresiones Regulares
Ejemplos donde ={0,1}
 0*10*
{w | w contiene un único 1}.
 *1*
{w | w tiene por lo menos un símbolo 1}.
 1*(01+)*
{w | todo 0 en w es seguido por al menos un 1}.
 ()*
{w | w es una cadena de tamaño par}.
 01  10
{01, 10}
Expresiones Regulares
Ejemplos donde ={0,1}
 0*0  1*1  0  1
{w | w comienza y termina con el mismo símbolo}.
 (0  )1*
01*  1*
 (0  )(1  )
{, 0, 1, 01}.
 1*

 *
{}
Equivalencia entre AF y
Expresiones Regulares

 Cualquier expresión regular puede ser convertida en


un autómata finito que reconoce el lenguaje que la
expresión regular describe, y viceversa.
Equivalencia entre AF y
Expresiones Regulares
 Teorema: Un lenguaje es regular si y solamente si alguna
expresión regular la describe.
Ese teorema tiene dos direcciones. Enunciamos y
probamos cada una de las direcciones como un lema
separado.
 Lema 1.55: Si un lenguaje es descrito por una expresión
regular entonces él es regular.
 Lema 1.60: Si un lenguaje es regular entonces él es descrito
por una expresión regular.
Ejemplo: De Autómata a
Expresión Regular
Bibliografía

[1] M. Sipser, Introduction to the Theory of Computation


Third Edition, Cengage Learning, 2013
[2] J. E. Hopcroft, R. Motwani and J. D. Ullman, Teoría de
autómatas, lenguajes y computación, Addison Wesley,
2007.
[3] D. Kelley, Teoría de Autómatas y lenguajes formales,
Prentice Hall, 1995.

También podría gustarte