HERNANDEZ 2.1 DEFINICIÓN FORMAL DE UNA ER (EXPRESIÓN REGULAR) Es un equivalente algebraico para un autómata. Utilizado en muchos lugares como un lenguaje para describir patrones en texto que son sencillos pero muy útiles. Pueden definir exactamente los mismos lenguajes que los autómatas pueden describir
las expresiones regulares se construyen utilizando los
operadores unión, concatenación. Además cada expresión regular tiene un autómata finito asociado. 2.2 DISEÑO DE ER Las diferentes operaciones sobre los idiomas disponibles son:
Unión de dos idiomas L y M se escribe como
L U M = {s | s en L o s es en M} La concatenación de dos lenguajes L y M se escribe como LM = {st | s es en L y t se encuentra en M} La clausura de Kleene un lenguaje L es escrito como L* = cero o más apariciones del lenguaje L. CARACTERÍSTICAS Alternación Una barra vertical separa las alternativas. Por ejemplo, "marrón|castaño" se corresponde con marrón o castaño. Cuantificación Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *: + El signo más indica que el carácter que le precede debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etcétera. ? El signo de interrogación indica que el carácter que le precede puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" se corresponde con oscuro y obscuro. * El asterisco indica que el carácter que le precede puede aparecer cero, una, o más veces. Por ejemplo, "0*42" se corresponde con 42, 042, 0042, 00042, etcétera. $ El signo de pesos indica el final de una línea. ^ El signo de exponencial indica el comienzo de una línea. [] Agrupa caracteres en grupos o clases. Agrupación Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre|madre", y "(des)?amor" se corresponde con amor y con desamor. {} Encuentra coincidencia si hay exactamente n apariciones del carácter que precede. 2.3 APLICACIONES EN PROBLEMAS REALES. 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. Generalmente convierten la expresión regular a un autómata finito no determinista y después construyen el autómata finito determinista. 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.
Terapia cognitivo-conductual (TCC) y terapia dialéctico-conductual (TDC): Cómo la TCC, la TDC y la ACT pueden ayudarle a superar la ansiedad, la depresión, y los TOCS