Dr. Eladio Dapena Gonzalez 1 LaSDAI Unidad I Tema 4 Lenguajes LaSDAI Dr. Eladio Dapena Gonzalez 2 LaSDAI Lenguajes Una de las vas formales de estudiar el comportamiento lgico de un DES es basada en la teora de lenguajes y autmatas. El punto de partida es que un DES tiene asociado un conjunto de eventos E. Este conjunto de eventos E, es pensado como el alfabeto de un lenguaje y la secuencia de eventos son pensadas como las palabras de ese lenguaje. Dentro de este contexto podemos considerar las preguntas : Podemos construir un sistema que hable un lenguaje? Que lenguaje puede hablar un sistema? LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 3 LaSDAI Lenguajes Consideramos el conjunto de eventos E de un DES como un alfabeto. Asumimos E como un conjunto fimito. Una secuencia de eventos, tomados desde el alfabeto E, forman una palabra o cadena, (cadena de eventos ), tambin conocida en la literatura como traza. Una cadena formada por ningn evento es conocida como la cadena vaca y denotada por el smbolo . La longitud de una cadena es el nmero de eventos contenidos en ella, contando las repeticiones de los eventos. Definicin de Lenguaje Un lenguaje definido sobre un conjunto de eventos E, es un conjunto de cadenas de longitud finita formadas por eventos de E. Dr. Eladio Dapena Gonzalez 4 LaSDAI Lenguajes Definicin de Lenguaje Como ejemplo, sea E = { a, b, c }, un conjunto de eventos, entonces podemos definir: El lenguaje L1 = { , a, abb } , conformado por slo tres cadenas. El lenguaje L2 = { Todas las posibles cadenas de longitud 3 iniciadas con el evento a }, el cual contiene nueve cadenas. L2 = { aaa, aab, aba, abb, aac, aca, acc, abc, acb } El lenguaje L3 = { Todas las posibles cadenas de longitud finita iniciadas con a}, el cual contiene infinitas cadenas. LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 5 LaSDAI Lenguajes Kleene-closure (Cerradura de Kleene) Se define como Kleene-closure, al conjunto de todas las cadenas de elementos de E, incluyendo la cadena vaca, y se denota por E*. E* es infinito contable y contiene cadenas de longitud arbitraria. Ejemplo si E = { a, b, c }, entonces E* = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa,.} Un lenguaje sobre un conjunto de eventos E es en consecuencia un subconjunto de E*. En particular , E y E* son lenguajes. Dr. Eladio Dapena Gonzalez 6 LaSDAI Lenguajes Concatenacin La operacin clave involucrada en la construccin de cadenas, y en consecuencia lenguajes, desde un conjunto de eventos es la concatenacin. La cadena abb en el lenguaje L1, es la concatenacin de la cadena ab con el evento b, y la cadena ab es si misma la concatenacin de los eventos a y b. La concatenacin uv de dos cadenas u y v es una nueva cadena formada por los elemento de u seguida de los elementos de v. La cadena vaca , es el elemento identidad de la concatenacin: u = u = u, para toda cadena u. LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 7 LaSDAI Lenguajes Prefijo, subcadena y sufijo. Si tuv = s, con {t, u, v} E* entonces. Prefijo : t es el prefijo de s. Subcadena : u es denominado subcadena de s. Sufijo : v es el sufijo de s. Nota: y s son: prefijos, subcadenas y sufijos de s. Dr. Eladio Dapena Gonzalez 8 LaSDAI Lenguajes Operaciones Binarias con lenguajes Consideremos dos lenguajes L1, L2 E*. Interseccin Diferencia Suma Concatenacin Cociente { } 1 2: *| 1 2 L L s E s L s L = { } 1 2: *| 1 2 1 2 L L s E s L s L L L + = = { } 1. 2: . *| 1 2 L L s t E s L t L = { } 1/ 2: *| 2 . . 1 L L s E t L s t st L = { } 1 2: *| 1 2 L L s E s L s L = LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 9 LaSDAI Lenguajes Operaciones Binarias con lenguajes Consideremos dos lenguajes L1, L2 E*. Prefix-closure : Sea L E*; entonces Es decir, el prefix-closure de L es el lenguaje L que consiste de todos los prefijos de todas las cadenas de L. En general L L Entonces L es denominado como prefix-closure si L = L. As L es prefijo cerrado si cualquier prefijo de cualquier cadena es elemento de L. Kleene-closure : Sea L E*; entonces { } *: ..... L L LL LLL = { } : *: *( ) L s E t E st L = Dr. Eladio Dapena Gonzalez 10 LaSDAI Lenguajes Ejemplo: Sea E = { a, b, g } , y considere dos lenguajes L1 = { , a, abb } y L4 = { g }. 1. L1L4 = {g, ag, abbg} L4.L1= { g, ga, gabb } 2. L1 = {, a, ab, abb} 3. L4 = {, g} 4. L1L4 = {, a, g, ab, ag, abb, abbg} 1. L4*= {,g, gg, ggg, } 2. L1*={, a, abb, aa, aabb, abba, abbabb,} LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 11 LaSDAI Lenguajes Expresiones Regulares Una expresin regular definida de forma recursiva como: 1. es una expresin regular que representa el conjunto vaco. Es una expresin regular que representa un lenguaje formado por la palabra vaca. u es una expresin regular representando un lenguaje {u} E*, para todo u E. 2. Si r y s son expresiones regulares, entonces r s, ( r + s) , r* y s* , son expresiones regulares. 3. No existen expresiones regulares que no sean construidas por la aplicacin de las reglas 1 y 2, un nmero finito de veces. Las expresiones regulares ofrecen una representacin finita y compacta para describir lenguajes. Dr. Eladio Dapena Gonzalez 12 LaSDAI Lenguajes Ejemplo: Sea E = { a, b, g } , un alfabeto. 1. ( a + b ) representa el lenguaje L1 = { a , b } 2. a* representa el lenguaje L2 = {, a, aa, aaa,.} 3. (ab)* representa el lenguaje L3 = {, ab,abab,ababab,.} LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 13 LaSDAI Lenguajes Ejemplo: Sea E = { a, b, g } , un alfabeto. 4. (a + b )g* representa el lenguaje L4 = {a, b, ag, bg, agg, bgg,} 5. ( ab )* + g representa el lenguaje L5 = {, g, ab, abab, ababab,.} Dr. Eladio Dapena Gonzalez 14 LaSDAI Lenguajes Lenguaje Regular Es cualquier lenguaje que pueda ser representado por una expresin regular. No todo lenguaje regular tiene un nmero finito de palabras. No todo lenguaje es regular. Ejemplos: 1. Los lenguajes del ejemplo anterior. L1 = { a, b } L2 = { , a, aa, aaa,. } L3 = { , ab, abab, ababab,.} L4 = {a, b, ag, bg, agg, bgg,} 2. L = { a n b n , n = 0,1,2,.} = { , ab, aabb, aaabbb, aaaabbbb,..} no es regular. LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 15 LaSDAI Lenguajes Modelado de un DES por un lenguaje El comportamiento lgico de un DES puede ser modelado por el par: ( E, L ) donde E es un alfabeto cuyos elementos son smbolos que representan los eventos que afectan el DES. L E* es un lenguaje prefix-closure cuyas palabras representan secuencias parciales admisibles de eventos. Admisible : Significa fsicamente posible. Parcial : Indica que pueden ocurrir otros eventos despus del ltimo considerado. Dr. Eladio Dapena Gonzalez 16 LaSDAI Lenguajes Modelado de un DES por un lenguaje La condicin prefix-closure de L es evidente, ya que todo prefijo fsicamente posible es necesariamente una secuencia fsicamente posible. Ejemplo: Sea un DES con dos eventos posibles que ocurren siempre alternadamente y cualquiera de ellos puede ocurrir primero. Modelo ( E, L ) E = { a, b } representa el conjunto de eventos posibles L = { , a, b, ab, ba, aba, bab,..} L = ( + a ) ( ba )* ( + b ) L = ( + b ) (ab)* ( + a ) LaSDAI Dr. Eladio Dapena Gonzalez Dr. Eladio Dapena Gonzalez 17 LaSDAI Lenguajes Representacin de lenguajes Un lenguaje puede ser pensado como una va normal para describir el comportamiento de un DES. El lenguaje especifica todas las secuencias admisibles que el DES es capaz de procesar o generar, sin una estructura adicional. La dificultad aqu es que una representacin simple de un lenguaje no es siempre fcil de especificar o trabajar con ella. En otras palabras, necesitamos un conjunto compacto de estructuras que definan un lenguaje, las cuales puedan ser manipuladas por medio de operaciones bien definidas, as como construir, manipular y analizar lenguajes arbitrarios complejos. Los autmatas son una herramienta que permiten representar y manipular lenguajes y resolver problemas que pertenecen al comportamiento lgico de un DES. Dr. Eladio Dapena Gonzalez 18 LaSDAI LaSDAI Laboratorio de Sistemas Discretos, Automatizacin e Integracin