Está en la página 1de 32

fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Alfabetos, cadenas y lenguajes


Luis M. Estrada
luism@unam.mx

7 de febrero de 2019
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Agenda

• Conceptos básicos de Lenguajes

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


2/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


3/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Sı́mbolos

De manera general, se podrı́a definir a la compu-


tación como la manipulación formal de sı́mbolos.

Un sı́mbolo es una representación gráfica de objetos,


ideas o conceptos. El sı́mbolo es el tipo primitivo de
la teorı́a de lenguajes y por sı́ solo no tiene ningún
significado.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


4/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Alfabetos
Definición
Un alfabeto es un conjunto finito, no vacı́o de
sı́mbolos. Comúnmente usaremos la letra griega Σ
para denotar alfabetos y σ para denotar un
elemento arbitrario de Σ

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


5/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Alfabetos
Definición
Un alfabeto es un conjunto finito, no vacı́o de
sı́mbolos. Comúnmente usaremos la letra griega Σ
para denotar alfabetos y σ para denotar un
elemento arbitrario de Σ

Ejemplos
• {0, 1} es el alfabeto formado por los sı́mbolos 1
y 0 y se le conoce como alfabeto binario
• {a, b, c, ..., z} es el alfabeto con las letras
latinas de la a a la z
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
6/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Cadenas

Definición
Una cadena es una secuencia o sucesión de
sı́mbolos tomados de un alfabeto. Generalmente
usaremos las variables w , x, y y z para denotar
cadenas arbitrarias.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


7/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Cadenas
Definición
Una cadena es una secuencia o sucesión de
sı́mbolos tomados de un alfabeto. Generalmente
usaremos las variables w , x, y y z para denotar
cadenas arbitrarias.

Ejemplos
• 01101 puede ser una cadena sobre el alfabeto Σ
= {0, 1}
• aaaa es una cadena sobre el alfabeto {a, b} o
bien sobre el alfabeto {a}
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
8/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Cadenas

Definición
La cadena vacı́a se define como la cadena que no
tiene sı́mbolos, y para denotarla usaremos la letra
griega λ.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


9/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Cadenas

Definición
La cadena vacı́a se define como la cadena que no
tiene sı́mbolos, y para denotarla usaremos la letra
griega λ.

Importante
Algunos autores utilizan la letra griega  para
denotar la cadena vacı́a.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


10/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Conceptos básicos y notación

Notación
Denotaremos con Σ∗ conjunto de todas las cadenas
que se pueden formar sobre un alfabeto Σ

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


11/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Conceptos básicos y notación

Notación
Denotaremos con Σ∗ conjunto de todas las cadenas
que se pueden formar sobre un alfabeto Σ

ejemplos
• Si Σ = {a}, Σ∗ = {λ, a, aa, aaa, aaa...}
• Si Σ = {0, 1}, Σ∗ = {λ, 0, 1, 00, 01, 10, 001, ...}

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


12/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Conceptos básicos y notación


Notación
Denotaremos con Σ∗ conjunto de todas las cadenas
que se pueden formar sobre un alfabeto Σ

ejemplos
• Si Σ = {a}, Σ∗ = {λ, a, aa, aaa, aaa...}
• Si Σ = {0, 1}, Σ∗ = {λ, 0, 1, 00, 01, 10, 001, ...}

Importante
Σ∗ siempre es un conjunto infinito que contiene a la
cadena λ
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
13/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Operaciones con cadenas


Concatenación
Si u y v son cadenas en Σ∗ , la concatenación de u y
v . denotada por uv es la cadena formada por una
copia de la cadena u seguida de una copia de la
cadena v

Ejemplo
Considere las cadenas u = abb y v = acc sobre el
alfabeto Σ = {a, b, c}

Entonces la concatenación de u y v es
uv = |{z}
abb |{z}
acc
u v
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
14/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Conceptos básicos y notación

Definición
La longitud de una cadena x, denotada por |x| se
define como el número de sı́mbolos en x (contando
repeticiones)
Ejemplo
Si x = 011101 y z = 0111 entonces |x|=6 y |z|=4

La única cadena de longitud cero es λ, i.e. |λ |=0

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


15/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Operaciones con cadenas

Diremos que la cadena y es prefijo de una cadena


x sii existe una cadena z tal que x = yz

Ejemplos: abb es prefijo de abbaab

Nótese que λ es un prefijo de cualquier cadena.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


16/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Operaciones con cadenas

Diremos que la cadena y es posfijo de una cadena


x sii existe una cadena z tal que x = zy

Ejemplos: aab es posfijo de abbaab

Nótese que λ es un prefijo de cualquier cadena.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


17/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Potencia de una cadena

Definición
Dada u ∈ Σ∗ y n ∈ N, descriptivamente definimos
la potencia de u, denotada por u n de la siguiente
forma:

u0 = λ
u n = uu · · · u}
| {z
n veces

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


18/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Reversa de una cadena

Definición
Dada w = σ1 σ2 ...σn conσi ∈ Σ∗ , w R = σn σn − 1...σ1
w R se denomina la reversa de w o w reflejada:
Ejemplos
• Si w = abc w R = cba

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


19/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguajes
Definición
Dado un alfabeto Σ definimos un lenguaje como
cualquier subconjunto de Σ∗
Ejemplos
Dado el alfabeto Σ = {d, c} los siguientes son
lenguajes sobre Σ:
• {dc, ddd, cdc}
• {ccc, ccccc, ccccccc, ...}
• {c}
• {λ}
• ∅
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
20/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguajes
Es común especificar los lenguajes en notación
conjuntista: {w ∈ Σ∗ | w cumple cierta propiedad}
{w ∈ {0, 1}∗ | w tiene igual numero de 00 s y 10 s}
={ε, 01, 10, 0011, 1010, ...}

{w | w es un programa en C sintacticamente correcto}

O también:

{1n 0n | n ≥ 0}={ε, 10, 1100, 111000, ...}

{1n 0n | n es par }={ε, 1100, 11110000, ...}

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


21/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Concatenación de lenguajes
Definición
Sean L1 y L2 dos lenguajes en Σ∗ . Definimos la
concatenación de L1 y L2 , denotada por L1 L2
como:

L1 L2 = {w1 w2 ∈ Σ∗ | w1 ∈ L1 y w2 ∈ L2 }

Ejemplo
• Si L1 = {0, 1, 00} y L2 = {1, 11}

L1 L2 = {01, 011, 11, 111, 001, 0011}

• Si L1 = {0, 00, 000, ...} y L2 = {1, 11, 111, ...}


Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
22/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Potencias de un lenguaje
Definición
Sean L un lenguaje sobre Σ y un número natural n definimos
Ln (potencia n de L) como:

L0 = {λ}

Ln = LLL
| {z· · · L}
n veces

Ejemplos
Si L = {a, ba}
• L2 = LL = {a, ba}{a, ba} = {aa, aba, baa, baba}

• L3 = LLL = LL2 = {a, ba}{aa, aba, baa, baba} =


{aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa}
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
23/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Cerradura de un lenguaje
Definición
Sean L un lenguaje sobre Σ, la cerradura de Kleene, denotada por
L∗ , se define como:


[

L = Li = L0 ∪ L1 ∪ L2 ∪ · · · ∪ Ln · · ·
i≥0

Ejemplos
• Si L = {a}
L∗ = {λ, a, aa, aaa, aaaa, ...}
• Si L = {a, ab}
L∗ = {λ, a, ab, aa, aab, aba, abab, ..., aaa, aab, aba, aabab, ...}
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
24/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Unión de lenguajes
Definición
Sean L1 y L2 dos lenguajes en Σ∗ . Definimos la unión de L1 y L2 ,
denotada por L1 ∪L2 como:

L1 ∪L2 = {w ∈ Σ∗ | w ∈ L1 o w ∈ L2 }

Ejemplo
• Si L1 = {0, 1, 00} y L2 = {1, 00, 11, 101}

L1 ∪L2 = {0, 1, 00, 11, 101}

• Si L1 = {0, 00, 000, ...} y L2 = {1, 11, 111, ...}

L1 ∪L2 = {0, 1, 00, 11, 000, 111, ...}


Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
25/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Intersección de lenguajes
Definición
Sean L1 y L2 dos lenguajes en Σ∗ . Definimos la intersección de L1
y L2 , denotada por L1 ∩L2 como:

L1 ∩L2 = {w ∈ Σ∗ | w ∈ L1 y w ∈ L2 }

Ejemplo
• Si L1 = {0, 1, 00} y L2 = {1, 11, 00, 101}

L1 ∩L2 = {1, 00}

• Si L1 = {0, 00, 000, ...} y L2 = {1, 11, 111, ...}

L1 ∩L2 = {} = ∅
Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@
26/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Reflexión o inversa de un lenguaje

Definición
Sean L un lenguaje sobre Σ. Definimos la reflexión de L, denotada
por LR como:

LR = {w R ∈ Σ∗ | w ∈ L}

Ejemplo
• Si L = {ai b j |i, j ≥ 1}

LR = {bj ai |i, j ≥ 1}

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


27/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Lenguajes como problemas

En teorı́a de autómatas la clase de problemas que


trataremos de resolver será decidir si una cadena
pertenece o no a un lenguaje en particular. De
manera más precisa:

Si Σ es un alfabeto y L es un lenguaje sobre Σ, el


problema es:

Dada una cadena w en Σ∗ , decidir si w pertenece o


no a L

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


28/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Jerarquı́a de Chomsky
El lingüista Noam Chomsky en los años 50’s propuso una jerarquı́a
de lenguajes que los clasifica de acuerdo a su complejidad de modo
que los lenguajes más complejos contienen a los más simples. A
esta jerarquı́a se le conoce como jerarquı́a de Chomsky.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


29/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Jerarquı́a de Chomsky

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


30/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

Jerarquı́a de Chomsky
Cada tipo de lenguaje está asociado a un tipo de gramática que lo
genera y un tipo de autómata capaz de procesarlo.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


31/32
fi-unam l e n g u a j e s f o r m a l e s y a u t ó m a t a s

En las siguientes sesiones estudiaremos los los


lenguajes de la jerarquı́a de Chomsky ası́ como los
autómatas que pueden procesar dichos lenguajes,
comenzando por los más simples, los lenguajes
regulares y la máquina que los reconoce: los
autómatas finitos.

Luis M. Estradaluism@unam.mx—Short title@—7 de febrero de 2019@


32/32

También podría gustarte