You are on page 1of 15

Lenguajes y Gramticas

formales
Alfabetos y palabras

Alfabetos y palabras
! Alfabeto es un conjunto finito y no vaco de elementos
llamados smbolos o letras.
! Ejemplo: ASCII
! Palabra o cadena sobre un alfabeto V es una cadena finita de
smbolos del alfabeto.
! Longitud de una cadena w, que notaremos como |w|, es el
nmero de letras que aparecen en w.
! A la cadena que no tiene smbolos o que tiene longitud 0, la
llamaremos palabra vaca y se nota por ! (o tambin psilon,
segn los autores).
Alfabetos y palabras
! Si V es un alfabeto, llamaremos Vn al conjunto de todas
las palabras de longitud n sobre V.
! Un elemento de Vn ser una cadena del tipo a1a2 . . . an
donde cada ai V .
! Llamaremos V0 al conjunto cuyo nico elemento es la
palabra vaca, es decir, V0 = {!}.
! El conjunto de todas las cadenas de cualquier longitud
sobre V es:
Alfabetos y palabras
! Ejemplo:
! Alfabeto x={letras del alfabeto espaol} U {dgitos}
! Una cadena w sobre x sera
! abc67xy
! 78hs7fh
!
! %jl78$ es correcto?
Alfabetos y palabras
! Llamamos V+ al conjunto de todas las cadenas sobre el
alfabeto V excepto la vaca. Por tanto,
! V+ = V*" {!}
! La operacin de concatenacin:
! , es una operacin binaria entre palabras sobre un alfabeto
V, esto es: V* x V* ! V*
! de forma que si tenemos dos palabras x, y V* donde
! x = a1a2 . . . an,
! y = b1b2 . . . bm
! x concatenado con y ser w V* con |w| = |x| + |y|, de forma
que:
! W = x.y = a1a2 . . . anb1b2 . . . bm
Alfabetos y palabras
! Ejemplo:
! x=micro
! y=procesador
! x.y = microprocesador
! Implementaciones:
! Excel: funcin concatenate
! C#: Hello + world
! ASP: Hello & world
Alfabetos y palabras
! Algunas propiedades de la concatenacin son:
! operacin cerrada
! ! x, y V : xy V
! propiedad asociativa
! ! x, y, z V : x(yz)=(xy) z
! elemento neutro ! !
! ! x V:!x=x!=x
Alfabetos y palabras
! Decimos que una cadena z es subcadena de otra w si
existen cadenas x, y, z V tal que:
! w=xzy.
! Subcadenas
! Prefijo(w) = {x V|z V : w =xz} Consiste en eliminar
cero o ms elementos de derecha a izquierda sobre la
cadena w
! Sufijo(w) = {x V |z V : w = zx} Consisten en
eliminar cero o ms elementos de izquierda a derecha
sobre la cadena w
Alfabetos y palabras
! Diremos que x es un prefijo propio de w si:
! x Prefijo(w) ser un prefijo propio si x # w.
! Diremos que x es un sufijo propio de w si:
! si x Sufijo(w) ser un sufijo propio si x # w.
Alfabetos y palabras
! Ejemplo:
! Si w=abab es una palabra sobre el alfabeto {a, b} o sea w
{a, b}, tenemos que:
! ab es un prefijo propio de w
! abab es un prefijo de w, pero no es propio
! b es un sufijo propio de w
Alfabetos y palabras
! Subcadena sobre una cadena w, consiste en eliminar los
prefijos y/o sufijos de la cadena
! Ejemplo:
! w=ababa
Alfabetos y palabras
! Potencia de una palabra: operacin que consiste en
concatenar la palabra consigo misma n veces. Dada una
palabra w V, se define inductivamente la potencia n-
esima de w, que notaremos wn, como:
! w0 = !
! wn = w wn"1 para n > 0
! Ejemplo:
! Si w = aba es una palabra sobre el alfabeto {a, b} entonces:
! w0 = !
! w1 = aba
! w2 = abaaba
Implementaciones
Implementacin
! Algoritmos de bsqueda:
! Boyer-Moore
! Knuth-Morris-Pratt
! Rabin-Karp
Ejercicio en clase:
Alfabetos y palabras
! Sean las cadenas x=121 y z=abcd defina:
! Sufijos
! Prefijos
! Subcadenas
! Subsecuencias (eliminar cualquier smbolo o ninguno de la cadena)
! Sufijos propios
! Prefijos propios
! x.z
! z.x

You might also like