You are on page 1of 5

Cap´ ıtulo 1 Lenguajes formales

1.1. Alfabetos y palabras

Un alfabeto es un conjunto finito no vac´ ıo cuyos elementos se llaman s´ ımbolos. Denotamos un alfabeto arbitrario con la letra Σ. Una palabra o cadena sobre un alfabeto Σ es cualquier sucesi´ on finita de elementos de Σ. Admitimos la existencia de una u ´nica palabra que no tiene s´ ımbolos, la cual se denomina palabra vac´ ıa y se denota con λ. La palabra vac´ ıa desempe˜ na, en la teor´ ıa de lenguajes formales, un papel similar al que desempe˜ na el conjunto vac´ ıo ∅ en la teor´ ıa de conjuntos.
§

ımbolos a y b. Las Ejemplo Sea Σ = {a, b} el alfabeto que consta de los dos s´ ¦ ¥siguientes son palabras sobre Σ: aba ababaaa aaaab Obs´ ervese que aba = aab. El orden de los s´ ımbolos en una palabra es significativo ya que las palabras se definen como sucesiones, es decir, conjuntos secuencialmente ordenados. El conjunto de todas las palabras sobre un alfabeto Σ, incluyendo la palabra vac´ ıa, se denota por Σ∗ .
§ ¦

¤

Ejemplo

¤ ¥

Sea Σ = {a, b, c}, entonces

Σ∗ = {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}. Observaciones: 1. Si bien un alfabeto Σ es un conjunto finito, Σ∗ es siempre un conjunto 1

entonces u · v = a1 a2 · · · an b1 b2 · · · bm . aa. es igual a u. 1. . que son todos diferentes entre s´ ı: ∅ λ {∅} { λ} 3. . Si u. . e. . 2. aaaa. v. denota un alfabeto. d. Concatenaci´ on de palabras Dado un alfabeto Σ. . es decir. entonces 1. denotan lenguajes (definidos m´ as adelante).}. c.. λ A. . entonces u · λ = λ · u = u. a izquierda o a derecha. la concatenaci´ on de cualquier palabra u con la palabra vac´ ıa. denota el conjunto de todas las palabras que se pueden formar con los s´ ımbolos de Σ. Notaci´ on usada en la teor´ ıa de lenguajes Σ Σ∗ a. u. y dos palabras u. z.Cap´ ıtulo 1 Lenguajes formales 2 infinito (enumerable)..N. b.M. u · λ = λ · u = u. v ∈ Σ∗ . La teor´ ıa de lenguajes se hace con referencia a un alfabeto Σ fijo (pero arbitrario). aaa. . La concatenaci´ on de palabras se puede definir inductiva o recursivamente de la siguiente manera. y. es decir. Si u = a1 a2 · · · an . u · v es la palabra formada escribiendo los s´ ımbolos de u y a continuaci´ on los s´ ımbolos de v .L. v = b1 b2 · · · bm . x. la u ´nica palabra en Σ∗ que no tiene s´ ımbolos.2.. En el caso m´ as simple. v ∈ Σ∗ . . aaaaa. . a. a ∈ Σ. Es decir. .B. Σ contiene solo un s´ ımbolo. w. .C. y Σ = {λ. denotan s´ ımbolos del alfabeto Σ. sucesiones finitas de s´ ımbolos de Σ. denotan palabras.. ∗ Σ = {a}. la concatenaci´ on de u y v se denota como u · v o simplemente uv y se define descriptivamente as´ ı: 1. Si v = λ. Hay que distinguir entre los siguientes objetos. . denota la palabra vac´ ıa. 2. . Es decir.

|baaa| = 4. se define (descriptivamente) un en la siguiente forma § ¦ Ejercicio ¤ ¥ Dar una definici´ on recursiva de un . entonces (uv )w = u(vw). La concatenaci´ on de palabras es una operaci´ on asociativa.4. 1. w y usando la definici´ on descriptiva de concatenaci´ on. n+m veces |wn | + |wm | = | ww · · · w | + | ww · · · w | = n|w| + m|w|. u · (va) = (u · v )a.Cap´ ıtulo 1 2. m ≥ 1. m ∈ N. Si w ∈ Σ∗ . |wn+m | = | ww · · · w | = (n + m)|w|. n.3. w ∈ Σ . demostrar que |wn+m | = |wn | + |wm | Soluci´ on: Caso n. Es decir. Es decir. un = uu · · · u n veces Dada u ∈ Σ∗ y n ∈ N. 1. Lenguajes formales 3 Propiedad. si u = a1 a2 · · · an Ejemplo Ejemplo ¤ ¥ ¤ ¥ |aba| = 3. v. Demostraci´ on : Se puede hacer escribiendo expl´ ıcitamente las palabras u. n. |u| = § ¦ § ¦ 0. si u = λ. v. Tambi´ en se puede dar una demostraci´ on inductiva usando la definici´ on recursiva de concatenaci´ on (ejercicio opcional). Por otro lado. Potencias de una palabra u0 = λ. n veces m veces . ∗ si u. Longitud de una palabra La longitud de una palabra u ∈ Σ∗ se denota |u| y se define como el n´ umero de s´ ımbolos de u (contando los s´ ımbolos repetidos).

5. Por otro lado. Caso n = 0. . (u−1 )−1 = u § ¦ § ¦ § ¦ para u ∈ Σ∗ . prefijos y sufijos Una palabra v es una subpalabra o subcadena de u si existen palabras x. m = 0. si u = a1 a2 · · · an De la definici´ on se observa claramente que la inversa de la inversa de una palabra es la misma palabra. toda palabra u es prefijo y sufijo de s´ ı misma. v ∈ Σ∗ . N´ otese que x o y pueden ser λ y. n ≥ 1. Similar al caso anterior. Caso m = 0. Inversa de una palabra La inversa o transpuesta de una palabra u ∈ Σ∗ se denota u−1 y se define descriptivamente as´ ı: u−1 = λ. Ejercicio on de Ejercicio Generalizar la propiedad del ejercicio anterior a la concatenaci´ ¥n palabras. Por otro lado. Por la misma raz´ on. |wn+m | = |w0+m | = |wm |. Subpalabras. y tales que u = xvy . 1. |wn+m | = |w0+0 | = |λ| = 0. u = an · · · a2 a1 .Cap´ ıtulo 1 Lenguajes formales 4 Caso n = 0. demostrar que (uv )−1 = v −1 u−1 . un sufijo de u es una palabra v tal que u = wv para alguna palabra w ∈ Σ∗ . Se dice que v es un prefijo propio si v = u. Similarmente. Se dice que v es un sufijo propio si v = u. si u = λ. Obs´ ervese que λ es un prefijo y un sufijo de toda palabra u ya que uλ = λu = u. por lo tanto. la palabra vac´ ıa es una subpalabra de cualquier palabra. 1. es decir. |wn | + |wm | = |w0 | + |w0 | = |λ| + |λ| = 0 + 0 = 0. m ≥ 1.6. Si u. |wn | + |wm | = |w0 | + |wm | = |λ| + |wm | = 0 + |wm | = |wm |. Ejercicio ¤ ¥ ¤ ¥ ¤ Dar una definici´ on recursiva de u−1 . Un prefijo de u es una palabra v tal que u = vw para alguna palabra w ∈ Σ∗ .

. . b. 3. . ab3 a.} = {an : n ≥ 1}.} = {abn a : n ≥ 1} ∪ {λ}. Por ejemplo. Σ = {0. Ejemplos ¤ ¥ Los siguientes son ejemplos de lenguajes sobre los alfabetos dados. .} como ¦ ¥un lenguaje sobre un alfabeto adecuado. . . L = {a. Lenguajes Un lenguaje L sobre un alfabeto Σ es un subconjunto de Σ∗ . es decir L ⊆ Σ∗ . b. El conjunto N de los n´ umeros naturales se puede definir como un lenguaje sobre Σ. aaa. (Lenguaje vac´ ıo) (Lenguaje de todas las palabras sobre Σ) § ¦ Todo lenguaje L satisface ∅ ⊆ L ⊆ Σ∗ . 8. d}. § Ejercicio Definir el conjunto de los enteros Z = {. Σ = {a. .7. . c}. aba. L = {u ∈ Σ∗ : u no contiene el s´ ımbolo c}. z }. Casos extremos: L = ∅. 1. aca}. 2. . abbaab ∈ L pero abbcaa ∈ / L. . Σ = {a. . ¤ . u = bcbaadb. L = {λ. 4. 1. x. . ab2 a. . L = Σ∗ . −2. c}. aa. en la siguiente forma: N = {u ∈ Σ∗ : u = 0 o 0 no es un prefijo de u}. Σ = {a. −1. b. 6. . L es un lenguaje finito. . 7. 0. c. c}. y puede ser finito o infinito. . 2. b. . Σ = {a.. . Sufijos de u : λ b db adb aadb baadb cbaadb bcbaadb Prefijos de u : λ b bc bcb bcba bcbaa bcbaad bcbaadb 1. . aba. 9}. c. b. y. a. 5. c}. L = {u ∈ Σ∗ : u aparece en el diccionario espa˜ nol}. L. b. C.Cap´ ıtulo 1 § ¦ Lenguajes formales ¤ ¥ 5 Ejemplo Sea Σ = {a. N. . . Σ = {a. B. Los lenguajes se denotan con letras may´ usculas A. . L = {a. M. .