De lenguajes y palabras
No one shall expel us from the paradise which Cantor has created for us
—
David Hilbert
Buscamos identificar propiedades fundamentales de las computadoras
2
💻
3
👉
👉
👉
👉
Escenario deseado
💻
🌎➡️💻➡️🌎
4
Primero, necesitamos una forma de hablar de cualquier computadora
5
💻
Abstracción de computadora
Una computadora para gobernar a todas
6
1
Como caja negra
7
Pero...
Muchas entradas
En este escenario es difícil determinar qué entrada causa el comportamiento de la caja negra…
… pero las computadoras a las que estamos acostumbrados tienen muchas entradas
Muchas salidas
En este escenario es difícil determinar por qué la salida es como es…
… pero las computadoras a las que estamos acostumbrados tienen muchas salidas
8
Sobre las entradas en nuestras computadoras
9
Sobre las salidas en nuestras computadoras
10
Muchas entradas y salidas funcionan porque es práctico… dejando a un lado lo práctico
11
“
Propuesta
12
Una sola entrada
Las entradas se intercalan en un orden que ahora tiene que considerar nuestra caja negra.
13
Por ejemplo para la suma
Suma: a + b, puede entrar
14
Una sola salida
La salida codifica si algo “útil” se pudo calcular dentro de la caja negra.
15
Por ejemplo para la suma
Suma: a + b, puede salir
16
Recordemos qué queremos
Relacionar lo que pasa en la computadora con el exterior
17
En relación al exterior
Entrada
�Es el punto de contacto con el exterior 🌎
Salida
�Codifica la relación de la computadora con la entrada, no necesariamente con lo producido para el exterior
18
19
🌎
🌎
Computadoras como las conocemos
Falso/�Verdadero
Caja negra
Falso/�Verdadero
Abstracción
Qué realmente queremos
Relacionar lo que pasa en la computadora con el exterior
20
Alfabetos y cadenas
Formalizando las entradas
21
2
Aquí vienen nuestros conjuntos
22
💻
Alfabeto
23
Alfabeto
24
Ejemplos de alfabeto
25
Cadenas
26
Cadenas
27
Ejemplos de cadenas
28
Longitud de una cadena
|w| → n
29
La cadena vacia
Longitud cero, una secuencia donde se escoge ningún elemento del alfabeto
Notación: ε
|ε|=0
30
La operación concatenación de cadenas
Para dos palabras w1 y w2
La concatenación de w1 y w2 es
w1w2=a11a12...a1na21a22...a2m
31
Ejemplos de concatenación de cadenas
32
Propiedades de la concatenación de cadenas
33
Lenguajes
34
Lenguajes
35
💻
¡Lenguajes!
36
💻
¡¡Lenguajes!!
37
💻
¡¡¡Lenguajes!!!
38
💻
Lenguaje
39
Bienvenidos al infinito
y más allá
40
Ejemplos de lenguaje
41
Lenguajes Notables
42
Potencia
Lenguajes a partir de alfabetos
43
3
Potencia de un alfabeto Σn
Σ1
Lenguaje formado por todas las cadenas formadas concatenaciones de un sólo símbolo del alfabeto Σ
Σ2
Lenguaje formado por todas las cadenas formadas por concatenaciones de dos símbolos del alfabeto Σ
Σ3
Lenguaje formado por todas las cadenas formadas por concatenaciones de tres símbolo del alfabeto Σ
Σ0={ε}
Lenguaje formado por todas las cadenas conformadas por ningún símbolo del alfabeto Σ
44
Ejemplo Σ={a,b}
Σ1
{a,b}
Σ2
{aa,ab,ba,bb}
Σ3
{aaa,aab,aba,baa,abb,bab,bba,bbb}
Σ0={ε}
{ε}
45
Otro lenguaje notable
Σ*=Σ0∪ Σ1∪ Σ2∪ Σ3∪…�
Ejemplo Σ={a,b}:
Σ*={𝜺, a, b, aa, ab, ba, bb, aaa, aba, aab, baa, abb, bba, bab, bbb, ...}
El conjunto de todas las palabras posibles usando el alfabeto Σ
46
Consecuencia de Σ*
Todo L sobre Σ es un subconjunto de Σ*
47
Ilustración
48
Σ*
Hasta ahora
De alfabeto 🠚 cadena
De cadenas 🠚 lenguaje
De alfabeto 🠚 lenguaje
49
Operaciones lenguajes
Lenguajes a partir de lenguajes
50
4
Concatenación de lenguajes
Entre dos lenguajes L1 y L2
Todas las cadenas posibles de concatenaciones entre cadenas del lenguaje uno y el lenguaje dos
Formalmente
L1L2={w1w2| w1∈L1 y w2∈L2}
51
Ejemplos
L1={aa}, L2={a,b}, L3={ϵ} y L4={a,aa,aaa,aaaa,...}
52
L*
¿Si es posible concatenar dos lenguajes podemos pensar en la potencia de un lenguaje?
Sí
53
Cerraduras de lenguajes
54
Stephen C. Kleene
55
Ejemplos de cerraduras
Para L={aa}
L∗ = {ε ,aa,aaaa,aaaaaa,aaaaaaaa,...}
L+ = { aa,aaaa,aaaaaa,aaaaaaaa,...}
¿Cómo describirían este lenguaje?
56
Cerraduras notables
{ε}*={ε}
{ε}+={ε}
∅*={ε}
∅+={}
57
El poder de la cadena vacía y concatenación
{ε}L=L
L{ε}=L
{ε,...}L=({ε}∪Lr)L=({ε}L)∪(LrL)=L∪LrL
58
Además operaciones normales de conjuntos
59
Unión
60
Σ*
Lenguaje uno
Lenguaje dos
L1 ∪ L2
Concatenación
caso sin cadena vacía en lenguaje
61
Σ*
Lenguaje uno
Lenguaje dos
L1 L2
Concatenación
caso con cadena vacía en un lenguaje
62
Σ*
Lenguaje uno
Lenguaje dos
L1 L2
Concatenación
caso con cadena vacía en ambos lenguajes
63
Σ*
Lenguaje uno
Lenguaje dos
L1 L2
Cerradura
64
Σ*
Lenguaje
L*
Complemento
65
Σ*
Lenguaje
L
Formas de hablar de lenguajes
66
Gracias
¿Alguna pregunta ?
67
Resumen
Computadora como caja negra
Una entrada tipo cadena, y una salida tipo booleano
Conceptos de alfabeto, cadena y lenguaje
Operaciones sobre alfabetos
Operaciones sobre lenguajes
Formas de describir a un lenguaje