Actividad 2.1 - Resumen
Actividad 2.1 - Resumen
Actividad 2.1 - Resumen
COMALAPA
SEMESTRE: 6
FECHA: 12/02/2024
ER primitivas: Φ, λ, {a | a ЄЄЄ Σ Є}
Si α y β son ER, entonces son también ER: α + β (unión), α β (concatenación), α*
(cierre), (α).
No existen otras reglas para la construcción de ER sobre Σ.
Ejemplos de usos.
Anuncio publicitario
Por ejemplo, la expresión regular: 01* + 10* denota todas las cadenas que son o
un 0 seguido de cualquier cantidad 1’s o un 1 seguida de cualquier cantidad de
0’s.
Las contantes y son expresiones regulares que representan a los lenguajes L (Q)
= {Q} y L (Φ) L = Φ respectivamente.
Si a es un símbolo, entonces es una expresión regular que representan al
lenguaje: L (a) = {a}.
2.2. Operaciones
L1 U L2={ x | x ∈ L1 ó x ∈ L2}
Concatenación: Consideremos dos lenguajes definidos sobre el mismo alfabeto,
L1 y L2. La concatenación o producto de estos lenguajes es el lenguaje L1 L2= {
xy / x ∈ L1 y x ∈ L2} Las palabras de este lenguaje estarán formadas al concatenar
cada una palabra del primero de los lenguajes con otra del segundo.
Lenguaje obtenido uniendo el lenguaje con todas sus potencias posibles excepto
Lº. Si L no contiene la palabra vacía, la clausura positiva tampoco
Existen tres operaciones básicas que se pueden realizar sobre las ER:
Anuncio publicitario
Selección de alternativas : Se indica con el operador |(barra vertical). Si r y s son
ER, entonces r | s es una ER que define a cualquier cadena que concuerde con
una r o una s, también se dice que r | s , es la unión de los lenguajes de r y s y lo
podemos definir: L( r | s ) = L( r ) U L( s ). Esta operación se puede extender a más
de dos ER.
Concatenación: Se indica con la yuxtaposición de las ER. Si r y s son ER,
entonces rs es una ER que define a cualquier cadena que concuerde con la
concatenación de r y s , esta operación la podemos definir: L(rs) = L(r)L(s).Esta
operación se puede extender a más de dos ER.
Repetición o Cerradura: También se conoce con el nombre de cerradura de
Kleene. Se indica con el operador *. Si r es una ER, entonces r* es una ER que
define a las cadenas de caracteres representadas por la concatenación repetida
de r en n veces, o sea que lo podemos definir como: L(r*) = L(r)*o también lo
podemos definir como la unión infinita de conjuntos r :r* n = r 0 r 1 r 2…r n.
Una de las principales aplicaciones de los hermanos Deitel, son las expresiones
regulares que facilitan la construcción de un compilador. A menudo se utiliza una
expresión regular larga y compleja para validar la sintaxis de un programa. Si el
código del programa no concuerda con la expresión regular, el compilador sabe
que hay un error de sintaxis dentro del código.
Otra aplicación del mismo libro es en los editores de texto. También encontramos
a las expresiones regulares en la biología molecular. También hay esfuerzos
importantes para tratar de representar cadenas como generadas por expresiones
regulares o por lenguajes regulares.