Informtica Terica
Terica
INF
INF 155
155
INF
INF 155
155
YO: Andrs Moreira
amoreira@inf.utfsm.cl
Oficina N 138, en el DI
Horario de Consulta: martes 15-18
INF
INF 155
155
Medio oficial de comunicacin:
moodle
Certmenes:
22 de septiembre
27 de octubre
3 de diciembre
+ 3 tareas
Ayudante: Manuel Figueroa
INF
INF 155
155
Bibliografa:
John Hopcroft et al., Introduction to Automata
Theory, Languages and Computation [2 ed, 2001]
Michael Sipser, Introduction to the Theory of
Computation [3 ed, 2012]
Papadimitriou, Elements of the Theory of
Computation [2 ed, 1998]
INF
INF 155
155
Estarn disponibles adems:
Audio de las clases
Algunos links y software
Powerpoint
Ejercicios
INF155:
INF155: Informtica
Informtica Terica
Terica
AKA: TALF
Teora de Autmatas
y Lenguajes Formales
Teora de Autmatas
y Lenguajes Formales
Mquinas
(formales)
Informacin
(digital)
Temario
0. Repaso lgica, conjuntos, relaciones
1. Strings, lenguajes, operaciones entre lenguajes
2. Lenguajes regulares, autmatas finitos
3. Expresiones regulares (REGEXP), aplicaciones,
autmatas deterministas y no-deterministas
4. Gramticas formales, jerarqua de Chomsky
5. Lenguajes de libre contexto, autmatas de pila
6. Mquinas de Turing
7. Computabilidad, complejidad computacional
Adems (bonus)
En la clase del mircoles, en los primeros ~25
minutos...
Transparencia con fondo negro (para evitar
confusiones)...
Adems (bonus)
En la clase del mircoles, en los primeros ~25
minutos...
Transparencia con fondo negro (para evitar
confusiones)...
Asistencia en ese rato es 100% voluntaria (y
contenido no evaluado). Por cultura general, y
contexto.
Temario ah (aproximado)
-Lulio
-Leibniz
-Boole
-Cantor
-Frege
-Hilbert
-Gdel
-Turing
- ... ? (segn tiempo)
Bibliografa: Martin Davis, Engines of Logic
(tambin disponible como pdf)
Qu es un algoritmo?
Qu es un algoritmo?
Qu es un algoritmo?
Qu es un algoritmo?
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Lgica
Expresiones verdaderas o falsas (V,F)
Sus valores de verdad se combinan usando operaciones.
El resultado de las operaciones podemos representarlo
mediante tablas de verdad.
Tambin las tablas pueden servir para demostrar
identidades simples.
Lgica
Operaciones elementales:
x
xy
xy
Disjuncin, o
Conjuncin, y
Negacin
Lgica
Algunas propiedades bsicas:
Asociatividad:
(xy)z = x(yz)
(xy)z = x(yz)
Distributividad:
x(yz) = (xy)(xz)
x(yz) = (xy)(xz)
Leyes de Morgan:
(xy) = (x y)
(xy)= x y
Lgica
Una expresin importante: PQ.
La idea es que no se d el caso en que P es cierto, pero Q
es falso.
Es decir, se quiere la negacin de PQ.
Por ley de Morgan, se quiere PQ.
As que se define la implicancia PQ como PQ.
Lgica
La equivalencia (PQ) se define mediante (PQ
QP). Uno esperara que PQ signifique que P y Q valen
lo mismo. En efecto,
P
PQ QP PQ
Lgica
A partir de una expresin de implicancia PQ aparecen
otras expresiones relacionadas:
QP
la recproca:
P Q
la contraria:
la contrarrecproca: Q P
La recproca y la contraria son equivalentes entre s.
La contrarrecproca es equivalente a la implicancia
original.
Por eso a veces se demuestra QP, cuando lo que
uno quiere demostrar es PQ.
Lgica
Otra estrategia frecuente es la reduccin al
absurdo : uno supone que la conclusin es falsa, y
llega a una contradiccin.
Es decir, para demostrar P Q, suponemos
que P es cierto y que Q es falso (es decir, que
Q es cierto).
Desde ah llegamos a algo falso: PQ =0, que
por Morgan equivale a PQ =1, o sea, PQ.
Lgica
Si PQ y QR, entonces PR.
Una consecuencia es que cuando uno quiere
demostrar, por ejemplo, PQRS, basta con
demostrar PQRSP.
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Conjuntos
Conjuntos: informalmente, una coleccin bien definida
de objetos.
Bien definida definicin sin ambigedad
Coleccin? Objetos?
En principio uno tendera a decir que toda propiedad P
define un conjunto: sean todos los x tales que P(x) es
cierto, o bien sean todos los x tales que P(x) es
falso.
Conjuntos
Por ejemplo, P(x)=x es un nmero primo.
Entonces el conjunto R(P) ser el conjunto de todos los
nmeros naturales primos.
Pero cul sera el conjunto de los x que no cumplen P?
Los naturales, salvo los primos?
Los reales, salvo los primos?
Conjuntos
Se define el complemento con respecto a ese U:
AC = {xU: xA}
Todo conjunto admite el subconjunto vaco, . El
conjunto vaco es nico.
El conjunto potencia de un conjunto A, es el conjunto
P(A) formado por todos sus subconjuntos.
Si |A|=n, entonces |P(A)|=2n
Si A B, entonces P(A) P(B).
Conjuntos
Inclusin de la interseccin:
ABAyABB
Inclusin en la unin:
AAByBAB
Transitividad de la inclusin:
(A B B C) A C
Conjuntos vs Lgica:
x
x
x
x
XYxXxY
XYxXxY
X\Y x X x Y
Xc x X
Conjuntos
De ah se heredan la conmutatividad,
asociatividad y distributividad de y
Adems se tienen:
AU=A y AU=U
(Ac)c = A
AA=A y AA=A
(A B)c = Ac Bc y (A B)c = Ac Bc
A (A B) = A y A (A B) = A
Conjuntos disjuntos
Un par de conjuntos se dicen disjuntos si su
interseccin es vaca (no tienen elementos en comn).
Dados un conjunto A y una coleccin de conjuntos no
vacos {A1,Ak} se dice que la coleccin:
Es mutuamente disjunta si cualquier par de
conjuntos de la coleccin es disjunto.
Es un recubrimiento de A si A = A1A2... Ak.
Es una particin de A si es un recubrimiento y
adems es mutuamente disjunta.
Conjuntos
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Induccin
La induccin se usa para demostrar que una proposicin
P que depende de un nmero natural n, es decir, P(n),
es cierta para todo n por sobre algn umbral n0.
Lo que se hace es demostrar:
Caso base: P(n0) es cierta
Paso inductivo: Si P(n) es cierta
para un n n0, entonces P(n+1)
tambin es cierta
Induccin
En una variante, que a veces se llama induccin fuerte,
el paso inductivo demuestra que si P(k) es cierta para
todo n0 k n, entonces lo es para n+1.
Es decir, al demostrar el paso
inductivo no se usa slo el caso
anterior, sino todos los anteriores.
Induccin estructural
En una construccin recursiva, se tienen:
Objetos bsicos (primitivos)
Reglas de construccin, para definir nuevos objetos
a partir de un conjunto de objetos ya definidos.
Induccin estructural
Ejemplo clsico: consideremos la siguiente definicin
recursiva de un rbol conexo.
Un nodo solo, es un rbol.
Si T1, T2, , Tk son rboles disjuntos, entonces
n
A
T1
A
T2
tambin es un rbol.
...
A
Tk
Induccin estructural
Propiedad a demostrar: la cantidad de nodos siempre
es igual a la cantidad de aristas + 1.
Caso base: ok.
Sean ni y ai las cantidades de nodos y aristas en los
rboles Ti, para i de 1 hasta k. Sean n y a esas
cantidades para el nuevo rbol.
Hiptesis inductiva: ni ai 1 i
Paso inductivo:
k
n 1 ni 1 ( ai 1)
i 1
i 1
1 k ai 1 a
i 1
A
T1
A
T2 ...
...
A
Tk
Induccin estructural
Otro ejemplo tpico: expresiones aritmticas.
Smbolos elementales: letras, +, *, (, )
(1) Las letras son E.A.
(2) Si E y F son E.A., entonces E+F, E*F y (E)
tambin son E.A.
Ejemplos: x+y, x*y+x*(z+b), ((a)), etc
Ejercicio: demostrar que en una expresin aritmtica,
el nmero de ( es igual al nmero de ).
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
A1 A2 An { ( x1 , , xn ) : xi Ai 1 i n }
Un caso de particular inters es el producto
cartesiano de slo dos conjuntos: AB.
Relaciones
Una relacin es un subconjunto R AB.
Ntese que:
no necesariamente A=B
cualquier subconjunto RAB es vlido
R2
R1={(1,),(1,),(3,)}
R2=AB \ {(1,)}
R3={(2,)}
R3
R1
Relaciones: funciones
Las funciones son relaciones en que para cada xA,
existe un nico yB tal que (x,y)R.
Las tres relaciones en la
transparencia anterior son
contraejemplos : no son funciones.
R2
R3
R1
Relaciones: funciones
En cambio, R4 s lo es.
R4
R5
Y R5?
No es una funcin.
3
R6 2
1
Relaciones: notacin
Cuando una relacin RAB es una
funcin, y se tiene (x,y)R, solemos
escribir R(x)=y. Por ejemplo, R4(1)=.
R4
Relaciones: propiedades
Decimos que una relacin RS2 es:
Refleja: si para todo aS, aRa.
Transitiva: si cada vez que aRb y bRc, se tiene
adems aRc.
Simtrica: si aRb bRa
Antisimtrica: si cada vez que aRb y bRa,
necesariamente a=b.
Total: para cualesquiera a,bS, se tiene que
aRb o bien bRa (o ambas).
Relaciones: orden
Una relacin de orden parcial cumple con ser
refleja, transitiva y antisimtrica.
Ejemplo: Sea A un conjunto finito, S=P(A) [el
conjunto potencia de A], y R definida por
(B,C) R BC
(es decir: es la relacin de inclusin entre
subconjuntos de A).
NOTA: esto es lo que se llama un orden no estricto. En
rdenes estrictos, como < y , se prohibe la igualdad,
exigiendo que la relacin sea antirrefleja: a (a,a)R
Relaciones: orden
Si adems es total, entonces es una relacin de
orden total.
El ejemplo anterior es un caso de orden parcial que
no es total. Para ver por qu, consideremos A={1,2},
B={1}, C={2}. Claramente, ni B est includo en C, ni C
est includo en B.
Consideremos S=Z (los nmeros enteros), y la
relacin habitual. Ese s es un caso de relacin de
orden total.
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Relaciones: equivalencia
Una relacin de equivalencia cumple con ser refleja,
transitiva y simtrica.
Ejemplo:
Sean Z los nmeros enteros, y sea mN, m0.
Definiremos la relacin Rm (ojo, depende del
m) como
a Rm b a mod m = b mod m
[a mod m : es el resto de dividir a por m]
Relaciones: equivalencia
Sea R una relacin de equivalencia en S.
Para cada elemento aS, definimos su clase de
equivalencia
[a] = { bS: aRb }
Relaciones: equivalencia
Ejemplo: consideremos (Z,R3), con la relacin de
igualdad mdulo 3 definida antes. Entonces
[0] = { ..., -6, -3, 0, 3, 6, 9,... }
[1] = { ..., -5, -2, 1, 4, 7, ... }
[2] = { ..., -4, -1, 2, 5, 8, 10, ... }
y entre ellas incluyen a todo Z.
Ntese que tambin podramos decir que las clases de
equivalencia de R3 son [42],[5] y [-2]. Los
representantes dan lo mismo.
Relaciones: equivalencia
Sea RSS de equivalencia. Se define el conjunto
cuociente S/R como el conjunto de clases de
equivalencia.
En el ejemplo, Z/R3 = { [0], [1], [2] }
(o, equivalentemente, Z/R3 = { [42], [2], [-2] } ).
Relaciones: equivalencia
Ejemplo: Sea S una baraja de naipe [ingls],
S={ 1, 2, ..., K, 1, 2, ..., K,
1, 2,..., K, 1, 2, ..., K}
y consideremos las relaciones
Rp : si dos naipes son de la misma pinta
Rn : si dos naipes son del mismo nmero
Rc : si dos naipes son del mismo color
R2 : si el nmero de dos naipes tiene la misma paridad.
Cul es el ndice de cada una de estas relaciones?
Relaciones: equivalencia
Nota:
El nexo entre relaciones de equivalencia y
particiones es recproco: dada una particin, siempre
podemos definir una relacin de equivalencia cuyas
clases de equivalencias correspondan a esa particin.
.
. .
c
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Relaciones: refinamientos
Sean R,QS2 dos relaciones de equivalencia en S.
Decimos que R es ms fina que Q, y escribiremos
RQ, si se tiene
aRb aQb, a,bS
Es decir, R distingue entre elementos de S al menos
tan bien como Q.
Relaciones: refinamientos
RQ: aRb aQb, a,bS
Ejercicio: demostrar que si RQ,
entonces las clases de equivalencia
de Q son uniones de clases de
equivalencia de R.
Relaciones
En el ejemplo de los naipes, RpRc , y RnR2.
Si consideramos la relacin de igualdad mdulo m,
qu deben cumplir m1 y m2 para que Rm1 Rm2 ?
Otro ejemplo: Sea otra vez A un conjunto finito
cualquiera, y S=P(A) su conjunto potencia.
Consideremos las relaciones R y Q dadas por:
aRb a=b
aQb |a| = |b|
Entonces RQ.
[Recurdese que en este caso a y b son subconjuntos de
A. |a| es el cardinal de a.]
Relaciones
Nota: en realidad siempre se tiene que la relacin de
identidad (=) es ms fina que cualquier otra relacin de
equivalencia.
Relaciones: representacin
Hay (al menos) 3 formas de representar una relacin:
b
a
c
a b c
a 0 1 0
b 0 0 1
c 0 1 0
Pensar:
Cmo se ven, en un grafo o en una matriz, las
posibles propiedades de una relacin?
Cmo se ve una relacin de orden, o una relacin
de equivalencia?
R
a
b
c
a b c
0 1 1
0 1 1
0 1 1
b
a
c
R
a
b
c
a b c
0 1 0
0 0 1
0 1 0
Repaso
1. Lgica
2. Conjuntos
3. Induccin
4. Relaciones
5. Clases de equivalencia
6. Refinamientos y cerradura transitiva
7. Cardinales
Cardinal
Volvamos a las funciones. Si fAB es una funcin,
escribiremos que f:AB.
Decimos que una funcin f:AB es inyectiva cuando
preserva las diferencias: si ab, entonces f(a)f(b).
Cardinal
Esa intuicin se convierte en definicin :
decimos que el conjunto A tiene cardinalidad
menor o igual que B si existe una funcin
inyectiva f:AB. Escribimos |A||B|
Si se tiene |A||B| y adems |B||A| (es decir, existen
funciones inyectivas en ambas direcciones), escribimos |
A|=|B|, y decimos que tienen la misma cardinalidad (o el
mismo cardinal).
Nota: una funcin biyectiva es
inyectiva hacia los dos lados, y se
puede usar para probar igualdad de
cardinal. Pero a veces es ms cmodo
usar dos funciones distintas.
Cardinal
Cardinal
La gracia es que la definicin funciona tambin para
conjuntos infinitos.
Ejercicio: sea A finito y B infinito. Demostrar
que |A|<|B|, es decir, que |A||B|, pero |B||A|.
Ejercicio: Sea AB. Demostrar que |A||B|.
El conjunto infinito ms chico es N, los nmeros
naturales.
Cardinal
Los enteros (Z), los racionales (Q), los nmeros pares
(2Z), tienen todos el mismo cardinal que N.
Ese cardinal se anota 0 (aleph 0). Se dice que son
contables.
Los reales (R) no tienen el mismo cardinal
que N. Su cardinal, 1, es llamado el
cardinal del continuo, y es el mismo
cardinal de [0,1], R2, R3, etc.
Hablaremos ms sobre esto en
transparencias negras, al llegar a
Georg Cantor.
Lenguajes
Informacin digital Secuencia de smbolos
input
Computador
output
Alfabetos y palabras
ALFABETO:
Es cualquier conjunto finito, no vaco, de smbolos.
(Por lo general lo llamaremos )
Ejemplos:
= {0,1}
= {a,e,i,o,u}
= {a,...,z,A,...,Z, } ese es un espacio en blanco
= {(,)}
los smbolos aqu son ( y )
Alfabetos y palabras
PALABRA:
Es una secuencia finita de smbolos de .
Ejemplo: con alfabeto = {0,1,3}, algunas palabras son
1101
001101
1
0003000001111111
Algunas palabras con alfabeto = {(,)}:
(()(()))
(()
)
Alfabetos y palabras
Palabra vaca (o nula):
Es la palabra formada por 0 smbolos.
Por lo general la representaremos con la letra .
A veces se usan tambin .
Ojo: no es lo mismo que nada. ES una palabra, pero
sin letras.
Alfabetos y palabras
Formalmente, podemos ver las palabras como tuplas.
Ya sabemos lo que es 2= . Ms en general,
escribiremos
k veces
Alfabetos y palabras
La nica diferencia es que al escribir palabras no
ponemos las comas ni parntesis de las tuplas.
Ejemplo:
Alfabetos y palabras
Definimos (a dedo) 0= {} y 1 =
* k
k 0
k
k 1
Alfabetos y palabras
Dada una palabra w*, usaremos
|w|
para denotar la cantidad de smbolos que la
componen (es decir, su longitud).
Por definicin, ||=0.
Si se necesita evitar ambigedad, en lugar de |w|
usaremos length(w), len(w), o simplemente (w).
Comentarios
Ntese que * es un conjunto infinito (pero
contable) de palabras, cada una de las cuales tiene
una cantidad finita de caracteres.
Los smbolos son indivisibles; por lo tanto, no
tendremos alfabetos del tipo { c, h, ch, i, l, e }.
NOTACIN: por lo general se usan letras minsculas del comienzo
del abecedario para denotar smbolos, mientras que las letras
minsculas del final del abecedario suelen denotar palabras.
Adems, usaremos subndices para referirnos a smbolos dentro
de una palabra. Si w=aabbba, entonces w1=a, w3=b, etc.
Alfabetos y palabras
La concatenacin de dos palabras consiste en
escribir una despus de la otra. Por lo tanto, si
u=u1u2...un,
v=v1...vm,
entonces w=uv ser
w = u1u2...un v1...vm
Dados dos conjuntos de palabras A y B, la
concatenacin de los conjuntos ser
AB = { w: w=uv, uA, vB }
Alfabetos y palabras
={0,1,2}, A = { 00, 21, 2, 220}, B = { 1, 0, }
AB = ?
{ 001, 211, 21, 2201, 000, 210, 20, 2200, 00, 2,
220 }
Esto permite escribir
{ }
*
k 1
Alfabetos y palabras
Sean u,v*. Decimos que
u es un sufijo de v x*: v=xu
u es un prefijo de v x*: v=ux
u es una subpalabra de v x,y*: v=xuy
Si los x ( y) respectivos no son nulos, entonces se
dice que u es un sufijo (o prefijo o subpalabra)
propio de v.
Si u es subpalabra de v, se anota a veces
o tambin u v.
u v
Alfabetos y palabras
Transposicin: es una operacin unaria sobre palabras,
que invierte el orden: si
u = u1u2...un
entonces su transposicin es
uR = unun-1...u1
Un palndromo es una palabra que se lee igual al revs o
al derecho: u = uR. Por ejemplo: radar, abba, 1111.
Alfabetos y palabras
Otra operacin unaria consiste en duplicar una
palabra (concatenarla consigo misma): dada
u = u1u2...un
definimos
u2 = uu = u1u2...unu1u2...un
Anlogamente para potencias superiores:
u3 = uuu = uu2
...y en general, recursivamente
un = uuu...u = uun-1
n veces
Lenguajes
Lenguaje L sobre un alfabeto : ser cualquier
subconjunto
L *.
lenguaje
completo
Lenguajes:operaciones
Nota: L={} y L=
son siempre lenguajes (distintos), para todo .
Operaciones usuales de conjuntos:
L1L2 = { u: uL1 uL2 }
L1L2 = { u: uL1 uL2 }
LC = * \ L
_
a.k.a. L
Lenguajes:operaciones
Adems:
Transposicin: LR = { uR: uL }
Concatenacin: L1L2 = { uv: uL1, vL2 }
Tambin definimos
L0= {}
Lk = L Lk-1
y con eso
L L
*
k 0
L Lk
k 1
Lenguajes:operaciones
L* Lk
k 0
Lenguajes
Ms ejemplos de lenguajes:
={a,b}
L1 = {w*: w contiene una cantidad
par de b}
Lenguajes
Ms ejemplos de lenguajes:
={0,...,9,k,.,-}
L2 = {w*: w es un RUT vlido}
Lenguajes
Ms ejemplos de lenguajes:
={ ( , ) }
L3 = {w*:
Lenguajes
Ms ejemplos de lenguajes:
={0,1}
L4 = {w*: w en binario es un n primo}
Lenguajes
Ms ejemplos de lenguajes:
={0,1}
L5 = {w*: w= 1a01b01c01n, con n>2, a,b,c>0 y an+bn=cn}
Lenguajes
Ms ejemplos de lenguajes:
=ASCII
L6 = {w*: w es un programa en ANSI-C
que no se detiene nunca}
Lenguajes
={a,b}, L1={w*: w contiene una cantidad par de b}
={0,...,9,k,.,-}, L2={w*: w es un RUT vlido}
={(,)}, L3={w*: los parntesis estn bien balanceados}
={0,1}, L4={w*: w es un n primo}
={0,1}, L5={w*: w= 1a01b01c01n, n>2, a,b,c>0, y an+bn=cn}
=ASCII, L6={w*: w es un programa en ANSI-C que no
se detiene nunca}
Lenguajes
Lenguajes
Reconocer lenguajes puede ser equivalente a
resolver problemas:
Un problema de decisin es un problema que requiere
una respuesta del tipo s/no.
"wL?" es siempre un problema de decisin.
Todo problema de decisin se puede expresar
como wL, para algn lenguaje.
Cuando se estudia la dificultad de resolver
problemas (optimizar algo, calcular una funcin, lo que
sea) por lo general se estudia un problema de decisin
asociado. O sea, reconocer un lenguaje.
Lenguajes
A lo largo del curso veremos distintos modelos de
cmputo (distintos tipos de mquinas abstractas), que
pueden reconocer clases de lenguajes cada vez ms
complejas.
Hacia fines del semestre:
No todo lenguaje puede ser reconocido por un
computador.
En otros casos, hay cotas mnimas para el tiempo
necesario.
Lenguajes
Ejercicios:
Sean L1, L2 y L3 tres lenguajes sobre el alfabeto .
1) Demuestre que
L1 (L2 L3) = L1L2 L1L3
2) Demuestre que
L1 (L2 L3) L1L2 L1L3
y que esa inclusin es propia (i.e., existen casos
en que no se tiene =)..
Expresiones regulares
A una ER r le asociamos un lenguaje L(r), definido
recursivamente:
L() =
L() = {}
L() = {}
Precedencia
L(r1*) = L(r1)*
L(r1r2) = L(r1)L(r2)
L(r1+r2) = L(r1)L(r2)
L((r1)) = L(r1)
Expresiones regulares
Ejemplos:
(0+1)
(0+1)*
(0+1)*010
(0+1)*01(0+1)*
Expresiones regulares
Ejemplos:
((0+1)(0+1))*
((0+1)(0+1))*+((0+1)(0+1)
(0+1))*
Nota: cuando no haya confusin
posible, es posible usar exponentes:
((0+1)2)*+((0+1)3)*
((0+1)2+(0+1)3)*
. : comodn
x*: estrella de Kleene
x+: una o ms repeticiones de x
x?: x aparece una vez, o ninguna
xy: concatenacin
x|y: x+y
[abc] : agrupa caracteres
[a-c]: rango de caracteres
x{n}: xxx...x.
n veces
Adems:
Abreviaturas (con "\", o con [:algo:] en posix) para conjuntos
de caracteres que se usan con frecuencia
Secuencias de escape para caracteres usados en la sintaxis,
como el "[".
Caracteres que indican "comienzo de string" o "fin de
string": en Perl, son ^ y $, respectivamente.
Sepan expresiones
regulares: son
nuestras amigas