You are on page 1of 7

INTITUTO TECNOLOGICO DE TEPIC

Departamento de Sistemas y computacin Ingeniera en Sistemas Computacionales

PORTAFOLIO UNIDAD II: Expresiones Regulares

Lenguajes y Autmatas I
Maestra: M. D.O. y H. Sonia Alvarado Mares

Tepic Nayarit a 24 de Febrero del 2013

Contenido
Expresiones Regulares.3 Definicin...3 Operaciones..4 Aplicaciones en problemas reales...4 Anexos6 Bibliografas.7

Expresiones Regulares
Las expresiones regulares forman un metalenguaje que permite denotar de una forma cmoda y sencilla cualquier lenguaje regular. Segn el libro Teora de Autmatas y lenguajes formales nos dice que el conjunto de expresiones regulares sobre un determinado alfabeto puede verse a su vez como un lenguaje donde cada cadena est denotando un lenguaje regular.

Definicin
En la primera definicin que encontr, que es del libro antes mencionado, los autores Pedro Garca y compaa utilizan un ejemplo para definir y tratar de explicar lo que es una expresin regular. Dicho ejemplo es el siguiente: Sea un alfabeto que no contiene smbolos (,). Una expresin regular se define deforma inductiva como sigue 1. es una expresin regular que denota el lenguaje vaco. 2. es una expresin regular que denota el lenguaje que contiene nicamente a la
cadena vaca, {}.

3. 4. 5. 6. 7.

, es una expresin regular que denota el lenguaje que contiene nicamente la cadena , * +. Sea una expresin regular que denota el lenguaje , entonces ( ) es tambin una expresin regular para el mismo lenguaje. es una expresin regular que denota la unin de los lenguajes denotados por y . es una expresin regular que denota la concatenacin de los lenguajes denotados por y . es una expresin regular que denota la clausura del lenguaje denotado por .

Slo son expresiones regulares las definidas en los puntos anteriores. Lo que yo pude observar en esta definicin es que esta incluye las operaciones que se pueden hacer entre elementos de un lenguaje, siempre y cuando genere cadenas vlidas dicha expresin. Sin embargo, al seguir buscando, en el libro Cmo programar en Java, encontr una definicin ms formal de lo que es una expresin regular. Este libro nos dice que las expresiones regulares son una secuencia de caracteres y smbolos que definen un conjunto de cadenas y que son tiles para validar la entrada y asegurar que los datos estn en un formato especfico. Para m la definicin seria la siguiente: Las expresiones regulares son una secuencia de smbolos dada por operaciones que definen un conjunto de cadenas y que son tiles para validar la entrada de datos.

Operaciones
Segn Dean Kelley nos dice que en cualquier expresin regular pueden actuar los caracteres de un alfabeto, los smbolos de las operaciones unin, cerradura y parntesis para agrupar. Pero tambin debemos establecer una prioridad en la actuacin de los operadores a fin de especificar el lenguaje que denota una expresin regular y evitar el uso excesivo de parntesis. La prioridad de actuacin es la siguiente: La mxima prioridad es de los parntesis. La cerradura tiene mayor prioridad que la concatenacin y la unin. La concatenacin tiene mayor prioridad que la unin. La unin tiene prioridad mnima.

La cerradura Existen dos tipos de cerradura: la cerradura de Kleene (*) y la cerradura positiva (+). Estas dos son cerraduras bsicamente iguales, lo nico en lo que difieren es en que la cerradura de Kleene concatena a cero o ms veces un elemento, es decir, incluye el vaco en el lenguaje que genera. En cambio la cerradura positiva es la concatenacin de uno o ms veces un elemento y por esta razn no incluye el vaco. La concatenacin La concatenacin es la unin de un smbolo seguido de otro smbolo. En esta operacin el orden es muy importante. La unin Como su nombre lo dice es unir en un solo conjunto los smbolos que se encuentran en los dems conjuntos.

Aplicaciones en problemas reales


Segn los hermanos Deitel, una de las principales aplicaciones de las expresiones regulares es facilitar la construccin de un compilador. A menudo se utiliza una expresin regular larga y compleja para validar la sintaxis de un programa. Si el cdigo del programa no concuerda con la expresin regular, el compilador sabe que hay un error de sintaxis dentro del cdigo. Dentro de estas aplicaciones, en el libro Introduccin a la teora de la computacin, encontramos a los analizadores lexicogrficos. Algunos generadores lexicogrficos toman como entrada una sucesin de expresiones regulares que describen a las fichas y producen un autmata finito que reconozca cualquier ficha ah descrita. Generalmente convierten la expresin regular a un autmata finito no determinista y despus construyen el autmata finito determinista.

Otra aplicacin del mismo libro es en los editores de texto. Algunos editores de texto y programas similares permiten la substitucin de una cadena por otra cualquiera que cumpla con la expresin regular dada. Otra de las aplicaciones que siempre utilizamos es en correctores de ortografa. La correccin de ortografa tiene que ver, con localizar en una cadena de caracteres las inversiones de dos de ellos, la omisin de alguno, la insercin de un carcter que no corresponde a ninguno de los patrones especificados en la expresin regular. Tambin encontramos a las expresiones regulares en la biologa molecular. Hay un sinfn de algoritmos basados en el funcionamiento de autmatas finitos, que se usan para encontrar patrones en el genoma humano. Tambin hay esfuerzos importantes para tratar de representar cadenas como generadas por expresiones regulares o por lenguajes regulares.

ANEXO
1. ( ) Alfabeto: * + Cadenas vlidas: * + Descripcin: El conjunto de todas las cadenas de de una o ms ab. 2. ( | ) + Alfabeto: * Cadenas vlidas: * + Descripcin: El conjunto de todas las cadenas concatenadas de o ba seguidas de cero o ms ab y ba. 3. y que inicien con ab y que inicien con una a seguidas

| Alfabeto:* + Cadenas vlidas: * + Descripcin: El conjunto todas las cadenas de y que inicien con cero o ms seguidas de una b o de una seguidas de cero o ms b. ( | ) Alfabeto: * + Cadenas vlidas: * + Descripcin: El conjunto de todas las cadenas de cero o ms y . y que inicia con seguidas de

4.

5.

( ) + Alfabeto: * Cadenas vlidas: * + Descripcin: El conjunto de todas las cadenas de y que inicien con una de cero o ms veces seguidas de una o ms veces . seguidas

6.

( | ) Alfabeto: * + Cadenas vlidas: * Descripcin: El conjunto de todas las cadenas de cero o ms veces y seguidas de . y + que inician con seguidas de

7. ( | | | ) Alfabeto: * + Cadenas vlidas: * Descripcin: El conjunto de todas las combinaciones de y 8. ( | | ) Alfabeto: * + Cadenas vlidas: * Descripcin: El conjunto de todas las cadenas de y seguidas de . 9. + cero o ms veces.

+ que inician con cero o ms

( ( | ) ) Alfabeto: * + Cadenas vlidas: * + Descripcin: El conjunto de todas las cadenas de y que inician con una seguidas de cero o ms veces la concatenacin de seguidas de cero o ms seguidas de una .

Bibliografas
Deitel, Harvey M. y Deitel, Paul J. (2008). Como programar en JAVA. Educacin. Mxico: Pearson

Viso, E. (2008). Introduccin a la teora de la computacin (Autmatas y lenguajes formales). Mxico: Las prensas de la ciencia. Garca, Pedro. , Prez, Toms., Ruiz, Jos., Segarra, Encarna., Sempere, Jos M., Vazquez De Parga, M. (2001). Teora de autmatas y lenguajes formales. Mxico: Editorial Alfaomega. Kelley,D.(1998). Teora de Autmatas y lenguajes formales. Madrid: Editorial Prentice Hall.

You might also like