UNIDAD 2 EXPRESIONES REGULARES

Page 1

UNIDAD 2. EXPRESIONES REGULARES LENGUAJES Y AUTOMATAS ISC. ROSA IMELDA GARCIA CHI, MTI


EXPRESIONES REGULARES


CONCEPTOS BASICOS    

SIMBOLO CADENAS ALFABETOS LENGUAJES


Definición: Dado el alfabeto  , una expresión regular será el resultado de la aplicación de algunas (o todas) de las siguientes reglas un número finito de veces:

 1. El símbolo Ø es una expresión regular y denota el lenguaje vacío,  2. El símbolo ε es una expresión regular y denota el lenguaje {ε},  3. Si a   entonces a es una expresión regular que denota el lenguaje {a},  4. Si  y  son expresiones regulares entonces  a)  +  es una expresión regular que denota la unión de los lenguajes denotados por  y por  .  b)   es una expresión regular que denota la concatenación del lenguaje denotado por  con el denotado por  .  c) * es una expresión regular que denota la clausura del lenguaje denotado por  .


MTI. ROSA IMELDA GARCIA CHI


Teoremas para Expresiones Regulares

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


De Expresiones Regulares a

Lenguajes Regulares

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


DEFINICIÓN FORMAL DE

LENGUAJE REGULAR

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


Unidad 2 de Lenguajes y Autรณmatas

EXPRESIONES REGULARES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


SIGNIFICADO DE LAS

EXPRESIONES REGULARES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


Lodo, método, éxodo, mejora, última, odioso “od”

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


Ejemplo

MTI. ROSA IMELDA GARCIA CHI


Ejemplo:


Una solución aceptable para este tipo de problemas debe cumplir dos caracterísitcas

Corrección

Completez

Hasta aquí grupo A 13 febrero 2017 MTI. ROSA IMELDA GARCIA CHI


corrección

Las palabras que represente la ER propuesta deben satisfacer la descripción del problema (por ejemplo, para el problema del ejemplo, la solución a*(a+b)* no es adecuada porque representa algunas palabras, como abb, que no satisfacen la condición de que toda b esté inmediatamente precedida por una a;


Completez

La ER propuesta debe representar todas las palabras que satisfagan la condiciĂłn. AsĂ­ para el problema del ejemplo, la soluciĂłn (ab)* no es adecuada porque hay palabas tales como aab, pertenecientes al lenguaje, que no son representadas por dicha ER


METODOLOGÍA DE DISEÑO DE LAS EXPRESIONES REGULARES

MTI. ROSA IMELDA GARCIA CHI


Al tratar de encontrar una ER para un lenguaje dado, mientras más complejo sea el lenguaje es obvio que resulta más difícil encontrar por pura intuición dicha ER. En estos casos puede ser conveniente trabajar en forma metódica. Una técnica que funciona en muchos casos consiste en determinar primero la estructura de la ER, dejando unos «huecos» pendientes para resolverse luego. Estos huecos, que llamaremos contextos, son también lenguajes para los que habrá que encontrar una ER MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


Un importante elemento de metodología – que se aplicó en este ejemploconsiste en transformar los enunciados de lenguajes de manera que sean más fácilmente representables por ER

En particular, los enunciados «negativos» del tipo «…las palabras que no contengan bb» son particularmente difíciles, porque en las ER no hay ningún operador para representar «lo que no forma parte del lenguaje», sino que los operadores (como la unión o la estrella de Kleene) tienden a añadir más palabras

En consecuencia, es necesario convertir un enunciado sobre lo que no se permite en otro enunciado sobre lo que sí se permite.

MTI. ROSA IMELDA GARCIA CHI


Por ejemplo, si en un lenguaje las palabras no deben contener la cadena «bb» ¿qué es lo que sí puede contener? Aquí podemos hacer un análisis por casos, considerando que podemos tener una b sola, o también una b seguida de una a. Como hay dos casos podemos pensar en utilizar el operador «+» para combinar esos casos, y así en adelante MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


OPERACIONES CON

LENGUAJES REGULARES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


OPERACIONES CON

EXPRESIONES REGULARES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


PRECEDENCIA DE LAS OPERACIONES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


EXPRESIONES REGULARES

TEOREMA

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


PROPIEDADES

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


EJEMPLOS

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


EQUIVALENCIA ENTRE EXPRESIONES REGULARES

MTI. ROSA IMELDA GARCIA CHI


EQUIVALENCIAS

MTI. ROSA IMELDA GARCIA CHI


Ejercicios

MTI. ROSA IMELDA GARCIA CHI


SOLUCIÓN

MTI. ROSA IMELDA GARCIA CHI


EJERCICIOS

MTI. ROSA IMELDA GARCIA CHI


SOLUCIÓN

MTI. ROSA IMELDA GARCIA CHI


EXPRESIONES REGULARES

ESPECIFICACIÓN DE CATEGORÍAS LÉXICAS

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


EJEMPLOS

MTI. ROSA IMELDA GARCIA CHI


DE EXPRESION REGULAR A LENGUAJE REGULAR

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


ABREVIATURAS DE LAS

EXPRESIONES REGULARES EXTENDIDAS

MTI. ROSA IMELDA GARCIA CHI


MTI. ROSA IMELDA GARCIA CHI


EJEMPLOS

MTI. ROSA IMELDA GARCIA CHI


Expresiones regulares y lenguajes obtenidos del libro de «Lenguajes Formales y Teoría de la computación» de John Martin

Ejemplos

MTI. ROSA IMELDA GARCIA CHI


EJEMPLOS LENGUAJE

L{0,1} o sea {0}{1}

EXPRESION REGULAR CORRESPONDIENTE ε   0 001 0+1

L{0,10} osea {0}{10}

0+10

L{ε} L{} L{} L{0} L{001} o sea L{0}{0}{1}


EJEMPLOS LENGUAJE

EXPRESION REGULAR CORRESPONDIENTE L{1,ε}{001} (1+ε)001 (1+)001 L{1,} {001} (1+)001 L{1,} {001} L{110}*(0,1) (110)*(0+1) L{1}*{10} 1*10 L{10,111,11010}* (10+111+11010)* L{0,10}*({11}*{001, ε}) (0+10)*((11)*+(001+ ε))


Se piensa en EXPRESIÓN REGULAR como representativa de la «cadena más característica» del lenguaje respectivo. Por ejemplo: 1*10 es una cadena consistente en la subcadena 10 precedida de cualquier número de unos. Ejemplos: 110, 1110, 11110,111110,...

MTI. ROSA IMELDA GARCIA CHI


Ejemplo: cadenas de longitud par Sea L {0,1}* el lenguaje de todas las cadenas de longitud par. Puesto que 0 es par, εL ¿Es L regular? R= Si lo es ¿cuál es la Expresión Regular que le corresponde? R= Todas las cadenas de longitud par pueden obtenerse al concatenar cero o más cadenas de longitud 2. A la inversa, toda concatenación de este tipo tiene longitud par. De ello, se sigue que: L={00,01,10,11}* De modo que una expresión regular correspondiente a L es (00+01+10+11)* Otra sería (0+1)(0+1)*


Ejemplo: cadenas con números non de 1’ss Sea L el lenguaje de todas las cadenas 0´s y 1’s que contiene un número par de 1´s. Toda cadena de l debe tener por lo menos un 1 y, por ende, ha de comenzar con una cadena de la forma 0i10j Hay un número par (posiblemente cero) de 1´s adicionales, cada uno seguido de cero o más 0´s. Ello significa que el resto de la cadena es la concatenación de cero o más elementos de la forma general 10m10n Así, una expresión regular que describe a L es: 0*10*(10*10*)*


Otra expresión levemente distinta, que podría obtenerse al interrumpir la subcadena inicial después del 1 sería 0*1(0*10*1)*0* Si se parte de considerar el último 1 de la cadena en lugar del primero, se terminaría con: (0*10*1)*0*10*

Una respuesta más complicada y todavía correcta sería:

0*(10*10*)*1(0*10*1)*0* MTI. ROSA IMELDA GARCIA CHI


Lo importante de todos estos ejemplos es que la expresión regular debe ser suficientemente general para describir toda cadena del lenguaje. Una expresión que no funcionaría satisfactoriamente sería: (10*10*)*10* Ya que no permite cadenas que comienzan con 0. Este problema se corregiría al insertar 0* al comienzo, para obtener: 0*(10*10*)*10* Ésta es una forma de mostrar explícitamente el último 1 de la cadena, un tanto diferente de la tercera expresión regular del ejemplo MTI. ROSA IMELDA GARCIA CHI


Ejemplo: cadenas de longitud 6 o menos Sea L el conjunto de todas las cadenas en {0,1} de longitud 6 o menos. Una expresión sencilla a la vez que poco elegante, que corresponde a L es: ε+0+1+00+01+10+11+000+001+…+111+…+000000+…+111111 Una expresión regular para describir el conjunto de cadenas cuya longitud sea precisamente seis, sería: (0+1)(0+1) (0+1)(0+1) (0+1)(0+1) O en la notación extendida (0+1)6 Sin embargo para reducir la longitud podría permitirse simplemente algunos o todos los factores sean ε. Así pues, podría describirse L con la expresión regular: (0+1+ ε) 6


Ejemplo: cadenas que terminan con 1 y no contienen 00 En esta ocasión sea L el lenguaje siguiente:

L={x{0,1}*  x termina con 1 y no contiene la subcadena 00}

A fin de encontrar una expresión regular para L, se intenta describir de otras maneras la propiedad definitoria de las cadenas de L Afirmar que una cadena no contiene la subcadena 00 equivale a decir que ningún 0 puede ir seguido de otro 0, en otras palabras, que cada 0 aparece al final de la cadena o va seguido inmediatamente de 1


Puesto que las cadenas de L no pueden tener 0 al final, cada 0 debe ir seguido de 1 Ello implica que la cadena entera consiste en copias de las cadenas 01 y 1, por lo que cada cadena de L corresponde a la expresión regular: (1+01)* Sin embargo, esta expresión regular es demasiado general, ya que permite la inclusión de la cadena nula (o vacía) La definición afirma que las cadenas de l deben terminar con 1, lo cual es más fuerte que decir que no pueden terminar con 0. El problema no se corrige al agregar 1 al final, para obtener (1+01)*1, ya que ahora la expresión no es suficientemente general: no permite la subadena 01 Para posibilitar esta opción, se obtiene: (1+01)*(1+01), o (1+01)+ MTI. ROSA IMELDA GARCIA CHI


Ejemplo: El lenguaje de identificadores de C En este ejemplo, resulta útil un poco más de notación. Úsemos temporalmente l (de «letra») para denotar la expresión regular: a+b+c+…+z+A+B+C+…+Z Y d (de «dígito» ) para respresentar: 0+1+2+3+…+9


Un identificador en el lenguaje de programación C es toda cadena de longitud 1 o más que contiene sólo letras, dígitos o el signo de subrayado «_» y empieza con una letra o el signo mencionado. Así pues, una expresión regular para el lenguaje de todos los identificadores de C es:

(l+_)(l+d+_)* MTI. ROSA IMELDA GARCIA CHI


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.