You are on page 1of 31

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.

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} {2, 3} {1, {2, 3}, 4} donde se supone que los nmeros impares cumplen la condicin impar(i). Para indicar que a no
La notacin a B significa que a es elemento o est contenido en el conjunto B; por Ejemplo:

est en B se escribe a B.

Repaso General
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.
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 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.

Repaso General

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} Ac = {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|.

Repaso General
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 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).

Repaso General
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, 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:

{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}:
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. 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}: L1={a,aa,aaa,aaaa} L2={a,b,aa,ab,ba,bb} L3={aabb} con una sola palabra L4={} L5={}=

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}

Operaciones sobre palabras


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


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 = w3 ww = w2 w0 =

Operaciones sobre palabras


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 | aaab |c = 0 La inversin de una palabra: consiste en escribir al revs una palabra dada, y WR 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 (-). Propiedades bsicas: (Lc)c = L (L1 U L2)c = L1c L2c (L1 L2)c = L1c U L2c L1 - L2 = L1 L2c

Operaciones sobre lenguajes


La Concatenacin: la concatenacin de dos lenguajes L1 y L2, es otro lenguaje formado por todas las palabras que se pueden construir concatenando una palabra de L1 con L2. L1 L2 = { x y | x L1 ^ y L2 } Propiedades:
No es conmutativa. Es Asociativa. El elemento neutro es la palabra vaca . No es distributiva, L1(L2 L3) L1L2 L1L3 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 LR

Operaciones sobre lenguajes


Clausura, Cierre o Estrella de Kleene:

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 L0={} L1=L={a,ba} L2={aa, aba, baa, baba} As L*=L0 U L1 U L2 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 L0, a diferencia de L* que si lo posee.
Por ejemplo si L={a,ba} entonces L0={} L1=L={a,ba} L2={aa, aba, baa, baba} As L+=L1 U L2 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.

* : 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.

Ejemplos definicin de Lenguaje

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.
La respuesta a un acontecimiento solo se determina en funcin del acontecimiento y del estado en que se encuentra el sistema.

IV.

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


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, de izquierda a derecha los smbolos de la palabra que se intenta reconocer. Inicialmente esta unidad se encuentra en un estado inicial denominado (qo), y el cabezal est totalmente a la izquierda de la cinta, sin haber ledo todava ninguno de los smbolos que contiene.

Analoga de un Autmata finito

Representacin Grfica de los Autmatas finitos


Esta es su representacin ms usada, y es la siguiente:

1.
2. 3. 4.

Los estados son crculos que llevan dentro el nombre que los identifica.
El estado Inicial tendr una pequea flecha sobre este. Los estados aceptadores se indicaran con una pequea cruz que sale de ellos. 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. 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 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. Ciclo ejecucin autmata Su estructura bsica es:

Tipos de autmatas finitos


Autmatas Finitos Determinista (DFA, Deterministic Finite Automate). Autmatas Finitos No Determinista (NFA, Non-Deterministic Finite Automate)

JFLAP
Introduccin.
Instrucciones bsicas. Construccin y modificacin de un autmata. Ejecucin paso a paso de una cadena sobre un autmata. Ejercicio propuesto.

You might also like