2.3. LENGUAJES 31producto <strong>de</strong> la asociatividad <strong>de</strong> la concatenación <strong>de</strong> palabras. Es <strong>de</strong>cir, para todo lenguaje L 1 , L 2 y L 3 sobreun alfabeto Σ cualquiera,L 1 ◦ (L 2 ◦ L 3 ) = (L 1 ◦ L 2 ) ◦ L 3También se cumplen las siguientes propieda<strong>de</strong>s <strong>de</strong> la concatenación <strong>de</strong> lenguajes. Para todo lenguaje Lsobre un alfabeto Σ cualquiera,L ◦ ∅ = ∅ ◦ L = ∅L ◦ {ε} = {ε} ◦ L = LEn forma similar al caso <strong>de</strong> las palabras, la notación L i se utiliza para representar la concatenación, iveces, <strong>de</strong> un lenguaje L consigo mismo. Formalmente esta operación se pue<strong>de</strong> <strong>de</strong>finir para todo númeronatural i, a través <strong>de</strong> las siguientes reglas inductivas: Para todo lenguaje L:• L 0 = {ε}• Para todo número natural i ≥ 1 : L i = L ◦ L i−1La i<strong>de</strong>a intuitiva es que para todo número natural i, el lenguaje L i está formado por la concatenación <strong>de</strong>exactamente i palabras <strong>de</strong>l lenguaje L. Estas palabras pue<strong>de</strong>n ser distintas o no, no hay restricciones alrespecto. Es bueno hacer notar que se cumplen las siguientes propieda<strong>de</strong>s <strong>de</strong> esta operación.• Para todo lenguaje L : L 1 = L• ∅ 0 = {ε}• Para todo número natural n ≥ 1 : ∅ n = ∅Ejemplo 28 Si L es el lenguaje {a, b} sobre el alfabeto romano, se pue<strong>de</strong>n formar los siguientes lenguajesa partir <strong>de</strong> él:L 0 = {ε}L 1 = {a, b}L 2 = {aa, ab, ba, bb}L 3 = {aaa, aab, aba, abb, baa, bab, bba, bbb}2.3.2 ClausurasUna vez <strong>de</strong>finida la concatenación <strong>de</strong> lenguajes, es posible <strong>de</strong>finir una nueva función sobre los lenguajes,llamada clausura <strong>de</strong> Kleene, o simplemente clausura. La clausura <strong>de</strong> un lenguaje L se <strong>de</strong>fine como ellenguajeL ∗ = ⋃ L i , para todo i ≥ 0.También se <strong>de</strong>fine la clausura positiva <strong>de</strong> un lenguaje L, como el lenguaje:L + = ⋃ L i , para todo i ≥ 1.La clausura <strong>de</strong> un lenguaje L, L ∗ , <strong>de</strong>nota el lenguaje formado al concatenar cualquier número <strong>de</strong> palabras<strong>de</strong> L, incluyendo la posibilidad <strong>de</strong> cero. La clausura positiva, L + , es similar, pero en este caso no se aceptanconcatenaciones <strong>de</strong> cero palabras. El nombre clausura para estas funciones proviene <strong>de</strong>l hecho que la clausura,o la clausura positiva, <strong>de</strong> un lenguaje L, es un lenguaje que incluye a L y es cerrado bajo concatenación;es <strong>de</strong>cir, que al concatenar dos palabras cualesquiera <strong>de</strong> ellos, la palabra resultante también está en eselenguaje.✷
32 CHAPTER 2. LENGUAJES FORMALESEjemplo 29 Sea L el lenguaje {a, b} sobre el alfabeto romano. La clausura y clausura positiva <strong>de</strong> estelenguaje, son los lenguajes:L ∗ = {ε, a, b, aa, ab, ba, bb, aaa, aab, . . . }L + = {a, b, aa, ab, ba, bb, aaa, aab, aba, . . . }Esta <strong>de</strong>finición <strong>de</strong> las clausuras hace que las siguientes propieda<strong>de</strong>s se cumplan para lenguajes sobrecualquier alfabeto:• Para todo lenguaje L : L ⊆ L + ⊆ L ∗ .• ε ∈ L + si y sólo si ε ∈ L.• Para todo lenguaje L : ε ∈ L ∗ .En particular, para el lenguaje vacío y para aquél que sólo consta <strong>de</strong> la palabra nula se cumplen lassiguientes propieda<strong>de</strong>s:∅ ∗ = {ε} ∗ = {ε}Nótese que el uso <strong>de</strong> Σ ∗ para <strong>de</strong>notar el conjunto <strong>de</strong> todas las palabras sobre Σ es consistente con la notación<strong>de</strong> la clausura <strong>de</strong>l alfabeto Σ, visto como el lenguaje finito que es.Ejemplo 30 En este ejemplo se muestra como es posible usar las <strong>de</strong>finiciones ya vistas, para obtener algunasconclusiones sobre los lenguajes. En particular, consi<strong>de</strong>re el lenguajeL = {w ∈ {0, 1} ∗ /w tiene distinto número <strong>de</strong> ceros (0) que <strong>de</strong> unos (1) }.Se mostrará que L ∗ = {0, 1} ∗ .Primero, nótese que por la <strong>de</strong>finición <strong>de</strong> la clausura <strong>de</strong> Kleene, se tiene que para cualquier par <strong>de</strong> lenguajesL 1 y L 2 : si L 1 ⊆ L 2 , entonces L ∗ 1 ⊆ L ∗ 2.Ya que tanto la palabra 0 como la palabra 1 tienen diferente número <strong>de</strong> ceros que <strong>de</strong> unos, se sabe que{0, 1} ⊆ L y, por lo tanto, que {0, 1} ∗ ⊆ L ∗ .Pero por la <strong>de</strong>finición <strong>de</strong> L, también se sabe que L ∗ ⊆ {0, 1} ∗ . Y, por lo tanto, ya que cada uno essubconjunto <strong>de</strong>l otro, se concluye que L ∗ = {0, 1} ∗ .2.3.3 Representación <strong>de</strong> <strong>Lenguajes</strong>Un problema central en la teoría <strong>de</strong> la computación es la representación <strong>de</strong> lenguajes empleando especificacionesfinitas. Naturalmente, cualquier lenguaje finito es representable por la enumeración explícita <strong>de</strong> todasy cada una <strong>de</strong> las palabras en el lenguaje. El problema <strong>de</strong> la representación finita se hace interesante sólo enla medida que se consi<strong>de</strong>ran lenguajes infinitos. Pero, ¿qué es una especificación finita <strong>de</strong> un lenguaje? ¿quécaracterísticas <strong>de</strong>be cumplir para ser aceptable como tal? Lo primero que se pue<strong>de</strong> <strong>de</strong>cir es que <strong>de</strong>be, a suvez, ser una palabra, es <strong>de</strong>cir, una secuencia finita <strong>de</strong> símbolos tomados <strong>de</strong> algún alfabeto. En segundo lugar,interesa que sean tales que lenguajes diferentes tengan representaciones diferentes, <strong>de</strong> otra forma difícilmentese les podría llamar representación <strong>de</strong>l lenguaje.El problema es que estos dos requisitos ya implican que las posibles especificaciones finitas están seriamentelimitadas. El conjunto Σ∗ <strong>de</strong> palabras sobre un alfabeto Σ es infinito contable, por lo que el número<strong>de</strong> posibles representaciones <strong>de</strong> lenguajes es, a su vez, infinito contable. Pero, por otro lado, el conjunto<strong>de</strong> todos los posibles lenguajes sobre un alfabeto Σ —esto es, 2 Σ∗ — es incontable, puesto que 2 N y, por lotanto, el conjunto potencia <strong>de</strong> cualquier conjunto infinito contable, es incontable. Al tener sólo un número✷✷