Lenguajes (gramáticas y autómatas)

Anuncio
Lenguajes (gramáticas y autómatas)
Elvira Mayordomo
Universidad de Zaragoza
19 de septiembre de 2013
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
1 / 23
Definiciones básicas
Alfabeto
Cadena o palabra
Lenguaje
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
2 / 23
Alfabeto
Un alfabeto es un conjunto finito
Un sı́mbolo o letra es un elemento del alfabeto
Nuestros ejemplos suelen ser pequeños:
Σ = {a, b}
Σ = {0, 1}
Pero pueden ser de otro tipo:
Σ = {Rojo, Negro, Azul, Verde}
Σ = {a, b, c, d, e, f , g , h, i, j, k, l, m, n, o, p, q, r , s, t, u, v , w , x, y , z}
Σ = {el, la, los, las, un, una, unos, unas}
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
3 / 23
Cadena
Una cadena es una secuencia finita de letras
Por ejemplo, si el alfabeto es Σ = {a, b}, algunas palabras
abbaaa
bbbbbbbbbb
La longitud de una cadena es el número de letras
w = a1 . . . an , la longitud de w es |w | = n
La cadena de longitud 0 o cadena vacı́a es ¡Cuidado!, también se usa |A| para denotar el número de elementos del
conjunto A
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
4 / 23
Cadena: prefijo y sufijo
Prefijo de una cadena: Caracteres consecutivos de la cadena
empezando por el principio
Sufijo de una cadena: Caracteres consecutivos de la cadena
terminando al final
Prefijos de abb: , a, ab, abb
Sufijos de abb: , b, bb, abb
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
5 / 23
Lenguaje
Un lenguaje es un conjunto de cadenas
Por ejemplo, para Σ = {a, b}.
L = {aa, bbbb, }
A = {}
B = {w | |w | = 3}
C = {an b n | n ∈ N}
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
6 / 23
Operaciones con cadenas: concatenación
v = a1 . . . an
w = b1 . . . bm
La concatenación es vw = a1 . . . an b1 . . . bm
Si hace falta se pone un punto v · w
aaab · bbb = aaabbbb
baba · = baba
La longitud de la concatenación es la suma de las longitudes
|uv | = |u| + |v |
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
7 / 23
Operaciones con cadenas: Potencia
wn = w
. . w}
| .{z
n
Por definición w 0 = Ejemplo: w = babb, w 0 = , w 2 = babbbabb
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
8 / 23
Operaciones con cadenas: Reverso
w R = an . . . a1
(abbb)R = bbba
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
9 / 23
Operaciones con lenguajes: Reverso
Dado un lenguaje L, LR = w R | w ∈ L .
Ejemplos: L = {aa, ba, bba}, L = {w | w termina en b }.
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
10 / 23
Operaciones con lenguajes: Concatenación
Dados dos lenguajes A, B,
A · B = {uv | u ∈ A, v ∈ B }
Ejemplos: A = {b, ba}, B = {a}
A = {w | w empieza en a }. B = {w | w termina en b }.
Propuesto: Demostrar quién es A · B.
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
11 / 23
Operaciones con lenguajes: Potencia
An = |A .{z
. . A}
n
De otra forma, An = {w1 . . . wn | wi ∈ A }
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
12 / 23
Operaciones con lenguajes: estrella de Kleene
L∗ =
S∞
n
n=0 L
= L0 ∪ L1 ∪ L2 . . .
Σ∗ es el lenguaje formado por todas las cadenas
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
13 / 23
Operaciones con lenguajes: +
L+ =
S∞
n
n=1 L
= L1 ∪ L2 . . .
Propuesto: Averiguar cuándo ∈ L+ .
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
14 / 23
Operaciones con lenguajes: unión, intersección, diferencia
de conjuntos
Veremos esto y un repaso de todo lo demás en la clase de problemas
del viernes
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
15 / 23
¿Por qué nos interesan los lenguajes?
Principalmente buscaremos programas que nos digan si una cadena
está en un lenguaje (es decir, que reconocen el lenguaje)
Ejemplo. L = {an b n }
Queremos saber cómo de difı́cil es un programa que reconoce un
lenguaje
¿Para qué?
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
16 / 23
Los lenguajes humanos
Inglés, Español, Cantonés, . . .
¿Qué frases de las siguientes son ciertas, con sentido, gramaticalmente
correctas?
vgrlum qp#dn aoiuiui brubrubrubru 3jc6r
perro deberes comió mis. Mi
El hierro es más denso que el glup.
Two is less than three.
El libro de este curso tiene 10 páginas.
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
17 / 23
Los lenguajes de programación
C, Java, Python, Prolog, Pascal, . . .
¿Cuándo es un programa:
sintácticamente correcto?
compilable?
sin errores de ejecución fatales?
sin bloqueos o bucles infinitos?
una implementación correcta de su espacificación?
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
18 / 23
Un lenguaje es un problema decisional
Un problema decisional es el que tiene sólo 2 respuestas posibles:
Dado un número natural n, ¿es n primo?
¿Este programa es compilable?
¿Esta frase f es correcta en este idioma I ?
Cada problema decisional corresponde a reconocer un lenguaje
Los problemas decisionales son los más simples de analizar, y su análisis
nos ayuda a reconocer problemas generales
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
19 / 23
Lenguajes, gramáticas y autómatas
Estudiaremos máquinas que reconozcan los distintos lenguajes (cómo
de difı́cil es un programa que reconoce si una cadena está en un
lenguaje)
Autómatas finitos, autómatas de pila, máquinas de Turing,
ordenadores
Estudiaremos generadores de las cadenas de un lenguaje
Expresiones regulares, gramáticas
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
20 / 23
Las dos preguntas importantes
¿Qué puede y no puede hacer un ordenador?
¿Cuál es el mecanismo más sencillo para resolver cada problema?
La Teorı́a de la Computación busca la respuesta a esas dos preguntas.
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
21 / 23
Bibliografı́a
Sipser (2a edición), páginas 13 y 14 (en sección 0.2) .
Kelley, capı́tulo 1.
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
22 / 23
Continuará ...
El próximo lunes cerraremos este tema
También hablaremos de expresiones regulares
Elvira Mayordomo (Universidad de Zaragoza)
Lenguajes (gramáticas y autómatas)
19 de septiembre de 2013
23 / 23
Descargar