Un alfabeto es un conjunto nito 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 nita 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 signicativo ya que las palabras se denen 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
= {, 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 nito, es siempre un conjunto 1
Cap tulo 1
Lenguajes formales
innito (enumerable). En el caso m as simple, contiene solo un s mbolo, = {a}, y = {, a, aa, aaa, aaaa, aaaaa, . . .}. 2. Hay que distinguir entre los siguientes objetos, que son todos diferentes entre s : {} { } 3. La teor a de lenguajes se hace con referencia a un alfabeto jo (pero arbitrario).
1.2.
Concatenaci on de palabras
Dado un alfabeto , y dos palabras u, v , la concatenaci on de u y v se denota como u v o simplemente uv y se dene descriptivamente as : 1. Si v = , entonces u = u = u. Es decir, la concatenaci on de cualquier palabra u con la palabra vac a, a izquierda o a derecha, es igual a u. 2. Si u = a1 a2 an , v = b1 b2 bm , entonces u v = a1 a2 an b1 b2 bm . Es decir, u v es la palabra formada escribiendo los s mbolos de u y a continuaci on los s mbolos de v . La concatenaci on de palabras se puede denir inductiva o recursivamente de la siguiente manera. Si u, v , a , entonces 1. u = u = u.
Lenguajes formales
Propiedad. La concatenaci on de palabras es una operaci on asociativa. Es decir, si u, v, w , entonces (uv )w = u(vw). Demostraci on : Se puede hacer escribiendo expl citamente las palabras u, v, w y usando la denici on descriptiva de concatenaci on. Tambi en se puede dar una demostraci on inductiva usando la denici on recursiva de concatenaci on (ejercicio opcional).
1.3.
Ejercicio
1.4.
La longitud de una palabra u se denota |u| y se dene como el n umero de s mbolos de u (contando los s mbolos repetidos). Es decir, |u| =
0, si u = , n, si u = a1 a2 an
Ejemplo Ejemplo
Cap tulo 1
Lenguajes formales
Caso n = 0, m 1. |wn+m | = |w0+m | = |wm |. Por otro lado, |wn | + |wm | = |w0 | + |wm | = || + |wm | = 0 + |wm | = |wm |. Caso m = 0, n 1. Similar al caso anterior. Caso n = 0, m = 0. |wn+m | = |w0+0 | = || = 0. Por otro lado, |wn | + |wm | = |w0 | + |w0 | = || + || = 0 + 0 = 0.
1.5.
De la denici on se observa claramente que la inversa de la inversa de una palabra es la misma palabra, es decir, (u1 )1 = u
para u .
Ejercicio
Ejercicio
1.6.
Una palabra v es una subpalabra o subcadena de u si existen palabras x, y tales que u = xvy . N otese que x o y pueden ser y, por lo tanto, la palabra vac a es una subpalabra de cualquier palabra. Un prejo de u es una palabra v tal que u = vw para alguna palabra w . Se dice que v es un prejo propio si v = u. Similarmente, un sujo de u es una palabra v tal que u = wv para alguna palabra w . Se dice que v es un sujo propio si v = u. Obs ervese que es un prejo y un sujo de toda palabra u ya que u = u = u. Por la misma raz on, toda palabra u es prejo y sujo de s misma.
Cap tulo 1
Lenguajes formales
Ejemplo
Sea = {a, b, c, d}, u = bcbaadb. Sujos de u : b db adb aadb baadb cbaadb bcbaadb
1.7.
Lenguajes
Un lenguaje L sobre un alfabeto es un subconjunto de , es decir L . Casos extremos: L = , L = , (Lenguaje vac o) (Lenguaje de todas las palabras sobre )
Todo lenguaje L satisface L , y puede ser nito o innito. Los lenguajes se denotan con letras may usculas A, B, C, . . . , L, M, N, . . .. Ejemplos
= {a, b, c}. L = {a, aba, aca}. = {a, b, c}. L = {a, aa, aaa, . . .} = {an : n 1}. = {a, b, c}. L = {, a, aba, ab2 a, ab3 a, . . .} = {abn a : n 1} {}. = {a, b, c, . . . , x, y, z }. L = {u : u aparece en el diccionario espa nol}. L es un lenguaje nito. = {a, b, c}. L = {u : u no contiene el s mbolo c}. Por ejemplo, abbaab L pero abbcaa / L. = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los n umeros naturales se puede denir como un lenguaje sobre , en la siguiente forma: N = {u : u = 0 o 0 no es un prejo de u}.
Ejercicio Denir el conjunto de los enteros Z = {. . . , 2, 1, 0, 1, 2, . . .} como un lenguaje sobre un alfabeto adecuado.