De palabras y lenguajes

54
De palabras y lenguajes No one shall expel us from the paradise which Cantor has created for us — David Hilbert Ivan Meza

Transcript of De palabras y lenguajes

De palabras y lenguajes

No one shall expel us from the paradise which Cantor has created for us —David Hilbert

Ivan Meza

De la clase pasada:¿Qué es una computadora?

¿Qué hace una computadora?

¿Qué no hace una computadora?

¿Qué es constante en una computadora?

Necesitamos una forma de hablar de todas las computadoras

Una buena aproximación...

Proceso/caja negra

Caja negra

Esta simpli�cación, sigue muy compleja

Muchas entradasMuchas cajas negrasMuchas salidas

Entradas¿Cuántas y cuáles?

Una, dos, tres....Booleanos, Números, cadenas, estructuras, clicks, funciones, ...

Salidas¿Cuántas y cuáles?

MuchasBooleanos, números, cadenas, estructuras, pantalla, funciones, ...

¿Cómo hablamos de todas lascajas negras?

Una entrada: cadenaUna salida: booleana

Propuesta

Caja negra

Una entrada y una salida

Una entrada: muchos casos

Todas las entradas pueden ser reducidas a una, porconcatenación de cadenas

EjemploLa máquina que calcula a + b

La máquina recibe: seguida de a b

Opciones:

a : bab000 : a, 001 : b

Una salida: dos casos

Mucho más sencillo

EjemploLa máquina que calcula a + b

La máquina regresa: Falso o Verdadero

Signi�ca que la máquina llegó a un estado donde produjo unresultado

: Esos números (no) los puedo sumar: Esos números (no) los sumé

V /[F ]V /[F ]

El resultado, un efecto secundario

Esta sí es una simpli�cación

De muchas entradas a muchas de un solo tipoNo cambia el número de cajas negrasDe muchas salidas a dos salidas

¿Cómo generamos todas lasentradas?

Combinaciones de elementos básicos

¡Teoría de conjuntos!

concepto Alfabeto

Un conjunto de elementos "básicos" finitoNotación Σ

Ejemplos de alfabetos{a, b}{0, 1}{import , print , for , in , v1 , 1, 2, 3, [, ] },′ ,′

concepto Cadena

Secuencia finita de elementos de un alfabeto

Notación

Σ

w

Ejemplos de cadenasbaaaaa, bab, abbbbabbbb, . . .0, 1, 0101, 10001, 10001, . . .import m, for v1 in[1, 2, 3], in while if, . . .

Longitud de una cadena|baaaaa| = 6|bab| = 3|abbbbabbbb| = 11|0| = 1|1| = 1|0101| = 4

Longitud de una cadena|10001| = 5|11001| =?|import m| =?|for v1 in[1, 2, 3]| =?|in while if| =?

concepto LA CADENA VACIALongitud ceroNotación ϵ

0|ϵ| =

concepto ConcatenaciónPara dos palabras y w1 w2

= . . .w1 w11 w12 w1m

| | = mw1= . . .w2 w21 w22 w2n

| | = nw2

La concatenación de y esw1 w2

= . . . . . .w1w2 w11 w12 w1mw21 w22 w2n

aab bba = aabbba

Propiedades de la concatenación≠w1w2 w2w1

= ( ) = ( )w1w2w3 w1w2 w3 w1 w2w3ϵ = ϵ =w1 w1 w1

| | = | | + | |w1w2 w1 w2

Lenguajes

¡Lenguajes!

¡¡Lenguajes!!

¡¡¡Lenguajes!!!

concepto LenguajesConjunto de cadenas de un alfabeto

Notación

Σ

L

Bienvenidos alinfinito

Ejemplos de lenguajes{a, b}{aa, bb, aaa, bbb, aaaa, bbbb}{a, aa, aaa, aaaa, aaaaa, . . . }

Lenguajes notables{ϵ}{} = ∅

Potencia de un alfabetoDe alfabeto a lenguaje , supongamos Σ L Σ = {a, b}

...

= {ϵ}Σ0

= {a, b}Σ1

= {aa, ab, ba, bb}Σ2

= {aaa, aab, aba, abb, baa, bab, bba, bbb}Σ3

Un lenguaje notable

El conjunto de todas las palabras posibles con , incluyendo lacadena vacía

= ∪ ∪ ∪ ∪. . .Σ∗ Σ0 Σ1 Σ2 Σ3

Σ

Para Σ = {a, b}

= {ϵ, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, .Σ∗

Todo sobre es un subconjunto de L Σ Σ∗

concepto Concatenación de lenguajesPara dos lenguajes y L1 L2

= { | ∈ y  ∈ }L1L2 w1w2 w1 L1 w2 L2

Ejemplos concatenación delenguajes

, , y = {aa}L1 = {a, b}L2 = {ϵ}L3= {a, aa, aaa, aaaa, . . . }L4

=L1L2 {aaa, aab}=L2L1 {aaa, baa}=L2L2 {aa, ab, ba, bb}=L2L3 {a, b}=L1L4 {aaa, aaaa, aaaaa, . . . }

Si podemos concatenar lenguajes ¿exite ?L∗

Cerradura de un Lenguaje (Kleene estrella)

(Kleene más)

  =L∗ ⋃∞i=0 Li

=L+ ⋃∞i=1 Li

Stephen C. Kleene

Ejemplos de cerradurasPara L = {aa}

  = {ϵ, aa, aaaa, aaaaaa, aaaaaaaa, . . . }L∗

= {   aa, aaaa, aaaaaa, aaaaaaaa, . . . }L+

¿alguien puede describir este lenguaje?

Cerraduras notables{ϵ =}∗ {ϵ}{ϵ =}+ {ϵ}

=∅∗ {ϵ}=∅+ { }

El poder de la cadena vacía{ϵ}L = LL{ϵ} = L

Si presente, copia un lenguajeϵ

{ϵ, . . . }L = ({ϵ} ∪ )L = ({ϵ}L) ∪ ( L) = L ∪ LLr Lr Lr

Las operaciones normales de losconjuntos

Union: Intersección: Diferencia:

∪L1 L2∩L2 L2

−L1 L2

Complemento= − LL

¯ ¯¯̄ Σ∗

concepto Lenguajes que generanlenguajesEn el curso nos concentraremos en 4 operaciones

UnionConcatenaciónCerraduraComplemento

Las operaciones aceptan lenguajes y crean "nuevos"lenguajes

Describiendo lenguajes con propiedad{w|w ∈ Σ∗ }

Ejemplos de lenguajesSi Σ = {a, b}

y con número par de aes y con sólo bes y número impar de bes

{w|w ∈ Σ∗ }{w|w ∈ Σ∗ }

ResumenCajas negras que representan a todos lo que se computaUna entrada de un tipo, muchos valores; una salida, dos valores¿Cómo generamos todas las entradas?

AlfabetoCadenasLenguajes

De alfabeto a lenguaje: potenciaConcatenación de lenguajesOperaciones que toman lenguajes y hacen otros lenguajes

[email protected] ivanvladimir.github.io ivanvladimir

De palabras y lenguajes by is licensed under a.

Creado a partir de la obra en.

Ivan V. Meza RuizCreative Commons Reconocimiento 4.0 Internacional License

http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/lenguajes.html