Sie sind auf Seite 1von 33

Alfabetos, palabras, Lenguajes y

autmatas.
Clase # 2 Compiladores e
Interpretes
Luis Ochoa
ziul1979@gmail.com
Repaso General
Conjuntos: Un conjunto como se puede ver a grandes rasgos
como una coleccin de individuos u objetos . Los conjuntos se
pueden expresar de dos maneras:
En extensin, lo cual quiere decir que citamos
explcitamente cada uno de sus elementos, como en
el conjunto {1, 3, 5} que contiene exactamente los
nmeros 1, 3 y 5. nmeros 1, 3 y 5.
En intencin, dando una descripcin precisa de
los elementos que forman parte del conjunto, en
vez de citarlos explcitamente. Por ejemplo, el
conjunto del punto anterior puede ser visto como:
{i N | impar(i), i < 6}
donde se supone que los nmeros impares
cumplen la condicin impar(i).
La notacin a B
significa que a es
elemento o est
contenido en el
conjunto B; por
Ejemplo:
{2, 3} {1, {2, 3}, 4}
Para indicar que a no
est en B se escribe
a B.
La notacin a B
significa que a es
elemento o est
contenido en el
conjunto B; por
Ejemplo:
{2, 3} {1, {2, 3}, 4}
Para indicar que a no
est en B se escribe
a B.
El tamao de un conjunto es el nmero de elementos que contiene,
y se representa como |A| para un conjunto A. Por ejemplo, el
tamao de {a, b, c} es 3, y el tamao del conjunto vaci es cero.
Aunque existen conjuntos con tamaos no muy claros.
Dos conjuntos A y B son iguales, A = B, si y slo si tienen los mismos
elementos, esto es, x A si x B. Por ejemplo {1, {2, 3}} = {{3,
2}, 1} vemos que en los conjuntos el orden de los elementos es
irrelevante.
Repaso General
irrelevante.
Se supone que en los conjuntos no hay repeticiones de elementos, y
que cada elemento del conjunto es distinto de todos los otros
elementos.
La notacin A C B significa que el conjunto A est contenido en el
conjunto B, o ms tcnicamente, que A es subconjunto de B. Por
ejemplo, el conjunto {a, c} es subconjunto de {a, b, c}, indicado
como {a, c} C {a, b, c}. En otras palabras, A C B cuando siempre
que x A, tenemos tambin x B. Obsrvese que de acuerdo con
esta definicin, A A para cualquier conjunto A: todo conjunto es
subconjunto de s mismo.
Para indicar que un subconjunto contiene menos elementos que otro, es
decir, que es un subconjunto propio de ste, se escribe A C B. Por
ejemplo, {a, c} C {a, b, c}. Claramente, A = B si A C B y B C A.
Obsrvese tambin que si A C B, entonces |A| |B|, y si A C B,
entonces |A| < |B|.
Operaciones con conjuntos:
Unin: A U B contiene los elementos del conjunto A y tambin los
del conjunto B, es decir, {x | x A o x B}. La unin de conjuntos es
conmutativa.
Interseccin: A B contiene los elementos que pertenecen
Repaso General
Interseccin: A B contiene los elementos que pertenecen
simultneamente al conjunto A y al conjunto B, es decir, A B = {x |
x A y x B}. Por ejemplo, {1, 2, 3} {3, 4} = {3}.Es conmutativa y
asociativa.
Complemento: Dado un universo (ejemplo nmeros naturales),
contiene entonces el complemento del conjunto contiene los
elementos del universo que no estn en el conjunto. Ejemplo:
U=nmeros naturales A= {2,4,6} A
c
= {1,3,5}
Producto Cartesiano: de dos conjuntos, A B, es el conjunto de
pares ordenados (a, b) tales que a A y 2 B. Por ejemplo,
{1, 2} {3, 4, 5} = {(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)}
El tamao de AB es |A| multiplicado por |B|.
Se llama relacin a todo subconjunto de un producto
cartesiano; por ejemplo la relacin contiene los pares de
nmeros naturales tales que el primer componente es menor
o igual al segundo, esto es, = {(1, 1), (1, 2), (1, 3), (2, 3), . . .}
o relacin x es padre de y, siendo x y y conjuntos de
personas.
Un caso particular de las relaciones son las funciones, que
Repaso General
Un caso particular de las relaciones son las funciones, que
son relaciones en que no hay dos pares ordenados que tengan
el mismo primer componente. Es decir, los pares ordenados
asocian a cada primer componente un nico segundo
componente. Por ejemplo, la relacin {(1, 2), (2, 3), (1, 3)} no
es una funcin, pero {(1, 2), (2, 3), (3, 3)} s lo es. Tomando
como ejemplo las familias, la relacin de hermanos no es una
funcin, pero la relacin de cada quien con su padre s lo es
(cada quien tiene a lo ms un padre).
Adems de los conjuntos finitos ( con un
nmero de elementos determinado ) tambin
puede haber conjuntos infinitos, cuyo tamao no
puede expresarse con un nmero; un ejemplo es
el conjunto de los nmeros naturales N = {1, 2,
Repaso General
el conjunto de los nmeros naturales N = {1, 2,
3, . . .}. An a estos conjuntos pueden aplicarse
todas las operaciones antes descritas.
Conceptos
Alfabeto: Conjunto finito y no vaci cuyos
elementos se denominan smbolos. Se designa
normalmente con las letras: o
Ejemplos: Ejemplos:
{0,1}
{a,b,c,x,y,z}
{0,1,2,3,4,5,6,7,8,9}
{a,b}
Conceptos
Palabra: es una secuencia finita de smbolos de un alfabeto,
las mismas se pueden crear especificando un alfabeto
determinado.
Ejemplos:
Si el alfabeto es {a,b}: Si el alfabeto es {a,b}:
aba, bab, a, b, bbbbabababababababababababababbaba
Si el alfabeto {0,1}:
0,1,01,11,10,
Existe una palabra especial que representa una secuencia vaca
de smbolos, y a menudo se llama la palabra vaca, y se
representa con la letra griega
Subpalabras, prefijos y sufijos
Subpalabras: subsecuencias de smbolos consecutivos de una
palabra, a menudo se usan las palabras factor o infijo.
Ejemplo:
La palabra bba contiene las siguientes subpalabras:
{,a,b,bb,ba,bba}
es importante las palabras en negritas son tambin consideradas subpalabras
impropias, las dems son subpalabras propias.
Prefijos: subpalabras al principio de una palabra. Prefijos: subpalabras al principio de una palabra.
Sufijos: subpalabras al final de una palabra.
Nota: La palabra vaca y entera se consideran sufijos y prefijos de cualquier
palabra.
Ejemplo:
Los prefijos de la palabra bbaab son {,b,bb,bba,bbaa,bbaab} se observan
los prefijos propios en azul
Los sufijos son {,b,ab,aab,baab,bbaab} se observan los sufijos propios en
azul
Lenguaje
Se considera un lenguaje como un conjunto de palabras
sobre un alfabeto determinado.
Para designarlo normalmente se usa la letra L, con
subndices, si es necesario, y otras letras maysculas del
alfabeto latino.
Ejemplos sobre el alfabeto ={a,b}:
L
1
={a,aa,aaa,aaaa}
L
2
={a,b,aa,ab,ba,bb}
L
3
={aabb}
con una sola palabra
L
4
={}
L
5
={}=
Pueden ser infinitos como:
El lenguaje sobre ={a,b} de todas las palabras que tengan
tantas letras a como letras b.
El lenguaje de todas las palabras sobre ={a,b,c}
Concatenacin: construir una palabra nueva aadindole los smbolos
de la segunda tras los smbolos de la primera. Se representa con un punto
() normalmente, a veces si no es necesario se omite. Ejemplo:
aaa bbb = aaabbb
aba = aba
Operaciones sobre palabras
Propiedades:
No es conmutativa w1 w2 w2 w1
Es asociativa (w1 w2) w3 = w1 (w2 w3)
Tiene como elemento neutro la palabra vaca ().
Se puede representar la concatenacin de una palabra consigo misma
usando la representacin exponencial, ejemplo:
www = w
3
ww = w
2
w
0
=
La longitud: de una palabra se denota con |w| y representa el
nmero de smbolos de la misma. Ejemplo |101| = 3 | | = 0
El numero de ocurrencias: de una palabra se denota con |w|
x
y
representa el numero de ocurrencias del smbolo x en la palabra w.
Ejemplo:
| ababb |
a
= 2
Operaciones sobre palabras
| ababb |
a
= 2
| aaab |
c
= 0
La inversin de una palabra: consiste en escribir al revs una
palabra dada, y W
R
denota su inversa. Ejemplo (ab)
R
= ba
Cuando una palabra es igual a su inversa se dice es un palndromo.
Operaciones sobre lenguajes
Las operaciones conjuntistas:
La unin (U).
La interseccin ().
La complementacin (
c
).
La diferencia (-). La diferencia (-).
Propiedades bsicas:
(L
c
)
c
= L
(L
1
U L
2
)
c
= L
1
c
L
2
c
(L
1
L
2
)
c
= L
1
c
U L
2
c
L
1
- L
2
= L
1
L
2
c
Operaciones sobre lenguajes
La Concatenacin: la concatenacin de dos lenguajes L
1
y
L
2
, es otro lenguaje formado por todas las palabras que se
pueden construir concatenando una palabra de L
1
con L
2
.
L1 L2 = { x y | x L
1 ^
y L
2
}
Propiedades: Propiedades:
No es conmutativa.
Es Asociativa.
El elemento neutro es la palabra vaca .
No es distributiva, L
1
(L
2
L
3
) L
1
L
2
L
1
L
3
Se puede representar la concatenacin de un lenguaje
consigo mismo usando la notacin exponencial.
Se pueden concatenar lenguajes con palabras.
La inversin: no es mas que el lenguajes formado por los inversos de las
palabras de L, y se denota con L
R
Clausura, Cierre o Estrella de Kleene:
Operaciones sobre lenguajes
Su concepto es simple: El mismo es la unin de {} con el conjunto de todas las
palabras que se pueden formar concatenando entre s palabras de este mismo
lenguaje.
Por ejemplo si L={a,ba} entonces
L
0
={}
L
1
=L={a,ba}
L
2
={aa, aba, baa, baba}

As L*=L
0
U L
1
U L
2
U
Si fuese L={b} o L={aa} como quedara la clausura?
Clausura, Cierre Positivo de Kleene:
Operaciones sobre lenguajes
Su concepto es simple: Es similar a L*, solo difiere en que no posee L
0
, a diferencia
de L* que si lo posee.
Por ejemplo si L={a,ba} entonces
L
0
={}
L
1
=L={a,ba}
L
2
={aa, aba, baa, baba}

As L
+
=L
1
U L
2
U
Si fuese L={b} o L={aa} como quedara la clausura?
Cierres de un alfabeto: *
+
Dado que un alfabeto puede ser considerado un
lenguaje formado por palabras de un solo smbolo
(longitud 1), las operaciones de cierre de Kleene y
cierre positivo de Kleene tambin son aplicables a
los alfabetos. los alfabetos.
* : Conjunto de todas las palabras sobre .

+
: Conjunto de todas las palabras sobre de
longitud no nula.
Definicin de Lenguaje
Para definir un lenguaje lo podemos hacer de dos
maneras, formal e informal:
Definicin de Lenguaje
Autmatas finitos
Qu es un autmata finito?
Autmatas finitos que reconocen lenguajes.
Cmo hay que imaginarse un autmata finito.
Autmatas finitos
Que es un autmata finito?
Es un modelo matemtico de los sistemas que posee las
siguientes caractersticas:
I. En cada momento el sistema se encuentra en un estado
y el conjunto total de estados en los que se puede
encontrar un sistema es finito.
II. Pueden responder a un nmero finito de
acontecimientos diferentes.
III. El estado en el que se encuentra el sistema resume toda
la informacin referente a todos los acontecimientos
pasados.
IV. La respuesta a un acontecimiento solo se determina en
funcin del acontecimiento y del estado en que se
encuentra el sistema.
Por ejemplo: Un interruptor mecnico biestable, un
ascensor, etc.
Autmatas finitos y los lenguajes
Aunque existen muchos usos para los autmatas
finitos, en nuestro caso particular, consideraremos
los autmatas finitos como:
Maquinas conceptuales reconocedoras de
lenguajes lenguajes
Y por lo tanto la tarea realizada por los mismos
ser:
responder a la pregunta de si una palabra
pertenece a un lenguaje o no.
Como imaginamos un autmata finito, desde
nuestra perspectiva de reconocedores de
lenguajes:
La forma ms habitual de hacerlo consiste en
imaginar a los autmatas como mquinas que
constan de una unidad central con un cabezal
capaz de leer una cinta sobre la cual se han escrito, capaz de leer una cinta sobre la cual se han escrito,
de izquierda a derecha los smbolos de la palabra
que se intenta reconocer.
Inicialmente esta unidad se encuentra en un
estado inicial denominado (q
o
), y el cabezal est
totalmente a la izquierda de la cinta, sin haber
ledo todava ninguno de los smbolos que
contiene.
Como imaginarse un autmata finito.
Autmata en estado inicial:
Como imaginarse un autmata finito.
Cuando se lee un smbolo y se cambia de estado se
denomina transicin:
Representacin Grfica de los
Autmatas finitos
Esta es su representacin ms usada, y es la siguiente:
1. Los estados son crculos que llevan dentro el nombre que
los identifica.
2. El estado Inicial tendr una pequea flecha sobre este. 2. El estado Inicial tendr una pequea flecha sobre este.
3. Los estados aceptadores se indicaran con una pequea
cruz que sale de ellos.
4. Las posibles transiciones, en funcin de los smbolos
ledos, se indicaran con flechas que van de un estado al otro
(o a s mismo). Las mismas estarn etiquetadas con el
smbolo que produce el cambio de estado.
Autmatas finitos Conceptos Bsicos.
Algunas otras cosas importantes a tener en cuenta son:
Los estados del autmata estn divididos en dos
categoras, los estados llamados aceptadores o
finales y los estados llamados no aceptadores.
Cuando el estado en que se encuentra la maquina es
aceptador, significa que la palabra que va desde el
inicio de la cinta hasta el smbolo actual se reconoce
como perteneciente al lenguaje.
Por el contrario, si al llegar al final de la palabra (y la
cinta) la mquina queda en un estado que no sea
aceptador, la palabra no pertenece al lenguaje.
Representacin Grfica de los
Autmatas finitos
Por ejemplo:
Procesamiento de una palabra por
parte de un autmata
Supongamos que en el autmata anterior se
procesa la palabra w=aabab:
1. Inicialmente se esta en el estado A. 1. Inicialmente se esta en el estado A.
2. Cuando se lee el smbolo a se evoluciona hacia el
estado B.
3. Cuando se lee el segundo smbolo a, se
evoluciona de B hasta B.
4. Cuando se lee el smbolo b, se evoluciona de B
hacia D.
Procesamiento de una palabra por
parte de un autmata
5. Cuando se lee el smbolo a, se evoluciona desde
D hasta B.
6. Finalmente el autmata lee el ltimo smbolo a,
y evoluciona desde B hacia D y debido a que ya
se proceso completamente la palabra y el se proceso completamente la palabra y el
autmata que ubicado en un estado aceptador,
se puede decir que la palabra aabab ha sido
reconocida como perteneciente al lenguaje L.
Importante: No basta con que una palabra pase por
un estado aceptador para decir que el lenguaje la
acepto, ya que es necesario que el ltimo estado sea
aceptador.
Autmatas finitos y algoritmos
Cualquier autmata finito se puede
representar como un algoritmo, en
el cual independientemente de la
longitud de la palabra de entrada, la
cantidad de memoria que debe
consumirse para realizar el
procesamiento es siempre la
misma. misma.
Su estructura bsica es:
Ciclo
ejecucin
autmata
Tipos de autmatas finitos
Autmatas Finitos Determinista (DFA,
Deterministic Finite Automate). Deterministic Finite Automate).
Autmatas Finitos No Determinista (NFA, Non-
Deterministic Finite Automate)

Das könnte Ihnen auch gefallen