Alfabetos-Lenguajes y Automatas 1

33

Click here to load reader

Transcript of Alfabetos-Lenguajes y Automatas 1

Page 1: Alfabetos-Lenguajes y Automatas 1

Alfabetos, palabras, Lenguajes y autómatas.

Clase # 2 – Compiladores e InterpretesLuis Ochoa

[email protected]

Page 2: Alfabetos-Lenguajes y Automatas 1

Repaso General• Conjuntos: Un conjunto como se puede ver a grandes rasgos

como una colección de individuos u objetos . Los conjuntos se pueden expresar de dos maneras:

� En extensión, lo cual quiere decir que citamos explícitamente cada uno de sus elementos, como en el conjunto {1, 3, 5} que contiene exactamente los números 1, 3 y 5.números 1, 3 y 5.

� En intención, dando una descripción precisa de los elementos que forman parte del conjunto, en vez de citarlos explícitamente. Por ejemplo, el conjunto del punto anterior puede ser visto como:

{i Є N | impar(i), i < 6}

donde se supone que los números impares cumplen la condición impar(i).

La notación a Є Bsignifica que a es elemento o está contenido en el conjunto B; porEjemplo:

{2, 3} Є {1, {2, 3}, 4}

Para indicar que a no está en B se escribe

a Є B.

La notación a Є Bsignifica que a es elemento o está contenido en el conjunto B; porEjemplo:

{2, 3} Є {1, {2, 3}, 4}

Para indicar que a no está en B se escribe

a Є B.

Page 3: Alfabetos-Lenguajes y Automatas 1

• El tamaño de un conjunto es el número de elementos que contiene, y se representa como |A| para un conjunto A. Por ejemplo, el tamaño de {a, b, c} es 3, y el tamaño del conjunto vació es cero. Aunque existen conjuntos con tamaños no muy claros.

• Dos conjuntos A y B son iguales, A = B, si y sólo 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 notación A C B significa que el conjunto A está “contenido” en el conjunto B, o más técnicamente, 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 también x Є B. Obsérvese que de acuerdo con esta definición, A Є A para cualquier conjunto A: todo conjunto es subconjunto de sí mismo.

Page 4: Alfabetos-Lenguajes y Automatas 1

• 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. Obsérvese también que si A C B, entonces |A| ≤ |B|, y si A C B, entonces |A| < |B|.

• Operaciones con conjuntos:▫ Unión: A U B contiene los elementos del conjunto A y también los

del conjunto B, es decir, {x | x Є A o x Є B}. La unión de conjuntos es conmutativa.

▫ Intersección: A ∩ B contiene los elementos que pertenecen

Repaso General

▫ Intersección: A ∩ B contiene los elementos que pertenecen simultáneamente 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 números naturales), contiene entonces el complemento del conjunto contiene los elementos del universo que no están en el conjunto. Ejemplo:

U=números 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 tamaño de A×B es |A| multiplicado por |B|.

Page 5: Alfabetos-Lenguajes y Automatas 1

• Se llama relación a todo subconjunto de un producto cartesiano; por ejemplo la relación ≤ contiene los pares de números naturales tales que el primer componente es menor o igual al segundo, esto es, ≤ = {(1, 1), (1, 2), (1, 3), (2, 3), . . .} o relación “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 relación {(1, 2), (2, 3), (1, 3)} no es una función, pero {(1, 2), (2, 3), (3, 3)} sí lo es. Tomando como ejemplo las familias, la relación de hermanos no es una función, pero la relación de cada quien con su padre sí lo es (cada quien tiene a lo más un padre).

Page 6: Alfabetos-Lenguajes y Automatas 1

• Además de los conjuntos “finitos” ( con un número de elementos determinado ) también puede haber conjuntos infinitos, cuyo tamaño no puede expresarse con un número; un ejemplo es el conjunto de los números naturales N = {1, 2,

Repaso General

el conjunto de los números naturales N = {1, 2, 3, . . .}. Aún a estos conjuntos pueden aplicarse todas las operaciones antes descritas.

Page 7: Alfabetos-Lenguajes y Automatas 1

ConceptosAlfabeto: Conjunto finito y no vació cuyos

elementos se denominan símbolos. 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}

Page 8: Alfabetos-Lenguajes y Automatas 1

ConceptosPalabra: es una secuencia finita de símbolos 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 vacía de símbolos, y a menudo se llama la palabra vacía, y se representa con la letra griega λ

Page 9: Alfabetos-Lenguajes y Automatas 1

Subpalabras, prefijos y sufijos• Subpalabras: subsecuencias de símbolos 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 también consideradas subpalabrasimpropias, las demás 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 vacía 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

Page 10: Alfabetos-Lenguajes y Automatas 1

Lenguaje• Se considera un lenguaje como un conjunto de palabras

sobre un alfabeto determinado.

• Para designarlo normalmente se usa la letra L, con subíndices, si es necesario, y otras letras mayúsculas 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 palabraL4={λ}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}

Page 11: Alfabetos-Lenguajes y Automatas 1

� Concatenación: construir una palabra nueva añadiéndole los símbolos de la segunda tras los símbolos de la primera. Se representa con un punto (●) normalmente, a veces si no es necesario se omite. Ejemplo:

aaa ● bbb = aaabbbaba ● λ = 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 vacía (λ).

Se puede representar la concatenación de una palabra consigo misma usando la representación exponencial, ejemplo:

www = w3

ww = w2

w0 = λ

Page 12: Alfabetos-Lenguajes y Automatas 1

• La longitud: de una palabra se denota con |w| y representa el número de símbolos 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 símbolo x en la palabra w. Ejemplo:

| ababb |a = 2

Operaciones sobre palabras

| ababb |a = 2| aaab |c = 0

• La inversión de una palabra: consiste en escribir al revés una palabra dada, y WR denota su inversa. Ejemplo (ab)R = ba

• Cuando una palabra es igual a su inversa se dice es un palíndromo.

Page 13: Alfabetos-Lenguajes y Automatas 1

Operaciones sobre lenguajesLas operaciones conjuntistas:

• La unión (U).

• La intersección (∩).

• La complementación (c).

• La diferencia (-).• La diferencia (-).

Propiedades básicas:

▫ (Lc)c = L

▫ (L1 U L2)c = L1c ∩ L2

c

▫ (L1 ∩ L2)c = L1c U L2

c

▫ L1 - L2 = L1 ∩ L2c

Page 14: Alfabetos-Lenguajes y Automatas 1

Operaciones sobre lenguajesLa Concatenación: la concatenación 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:Propiedades:

� No es conmutativa.� Es Asociativa.� El elemento neutro es la palabra vacía λ.� No es distributiva, L1(L2 ∩ L3) ≠ L1L2 ∩ L1L3

� Se puede representar la concatenación de un lenguaje consigo mismo usando la notación exponencial.

� Se pueden concatenar lenguajes con palabras.

Page 15: Alfabetos-Lenguajes y Automatas 1

� La inversión: no es mas que el lenguajes formado por los inversos de las palabras de L, y se denota con LR

� Clausura, Cierre o Estrella de Kleene:

Operaciones sobre lenguajes

Su concepto es simple: El mismo es la unión 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} entoncesL0={λ}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 quedaría la clausura?

Page 16: Alfabetos-Lenguajes y Automatas 1

• 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 quedaría la clausura?

Page 17: Alfabetos-Lenguajes y Automatas 1

Cierres de un alfabeto: Σ* Σ+

• Dado que un alfabeto puede ser considerado un lenguaje formado por palabras de un solo símbolo (longitud 1), las operaciones de cierre de Kleene y cierre positivo de Kleene también son aplicables a los alfabetos.los alfabetos.

• Σ* : Conjunto de todas las palabras sobre Σ.

• Σ+ : Conjunto de todas las palabras sobre Σ de longitud no nula.

Page 18: Alfabetos-Lenguajes y Automatas 1

Definición de LenguajePara definir un lenguaje lo podemos hacer de dos

maneras, formal e informal:

Page 19: Alfabetos-Lenguajes y Automatas 1

Definición de Lenguaje

Page 20: Alfabetos-Lenguajes y Automatas 1

Autómatas finitos• ¿Qué es un autómata finito?

• Autómatas finitos que reconocen lenguajes.

• Cómo hay que imaginarse un autómata finito.

Page 21: Alfabetos-Lenguajes y Automatas 1

Autómatas finitos

Page 22: Alfabetos-Lenguajes y Automatas 1

¿Que es un autómata finito?Es un modelo matemático de los sistemas que posee las siguientes características:

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 número finito de acontecimientos diferentes.

III. El estado en el que se encuentra el sistema resume toda la información referente a todos los acontecimientos pasados.

IV. La respuesta a un acontecimiento solo se determina en función del acontecimiento y del estado en que se encuentra el sistema.

Por ejemplo: Un interruptor mecánico biestable, un ascensor, etc.

Page 23: Alfabetos-Lenguajes y Automatas 1

Autómatas finitos y los lenguajesAunque existen muchos usos para los autómatas

finitos, en nuestro caso particular, consideraremos los autómatas 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.

Page 24: Alfabetos-Lenguajes y Automatas 1

Como imaginamos un autómata finito, desde nuestra perspectiva de reconocedores de lenguajes:

• La forma más habitual de hacerlo consiste en imaginar a los autómatas como máquinas 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 símbolos 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 leído todavía ninguno de los símbolos que contiene.

Page 25: Alfabetos-Lenguajes y Automatas 1

Como imaginarse un autómata finito.Autómata en estado inicial:

Page 26: Alfabetos-Lenguajes y Automatas 1

Como imaginarse un autómata finito.Cuando se lee un símbolo y se cambia de estado se

denomina transición:

Page 27: Alfabetos-Lenguajes y Automatas 1

Representación Gráfica de los Autómatas finitosEsta es su representación más usada, y es la siguiente:

1. Los estados son círculos que llevan dentro el nombre que los identifica.

2. El estado Inicial tendrá una pequeña flecha sobre este.2. El estado Inicial tendrá una pequeña flecha sobre este.

3. Los estados aceptadores se indicaran con una pequeña cruz que sale de ellos.

4. Las posibles transiciones, en función de los símbolos leídos, se indicaran con flechas que van de un estado al otro (o a sí mismo). Las mismas estarán etiquetadas con el símbolo que produce el cambio de estado.

Page 28: Alfabetos-Lenguajes y Automatas 1

Autómatas finitos – Conceptos Básicos.Algunas otras cosas importantes a tener en cuenta son:

• Los estados del autómata están divididos en dos categorías, 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 símbolo actual se reconoce como perteneciente al lenguaje.

• Por el contrario, si al llegar al final de la palabra (y la cinta) la máquina queda en un estado que no sea aceptador, la palabra no pertenece al lenguaje.

Page 29: Alfabetos-Lenguajes y Automatas 1

Representación Gráfica de los Autómatas finitosPor ejemplo:

Page 30: Alfabetos-Lenguajes y Automatas 1

Procesamiento de una palabra por parte de un autómata

Supongamos que en el autómata 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 símbolo a se evoluciona hacia el estado B.

3. Cuando se lee el segundo símbolo a, se evoluciona de B hasta B.

4. Cuando se lee el símbolo b, se evoluciona de Bhacia D.

Page 31: Alfabetos-Lenguajes y Automatas 1

Procesamiento de una palabra por parte de un autómata5. Cuando se lee el símbolo a, se evoluciona desde

D hasta B.6. Finalmente el autómata lee el último símbolo 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 autómata 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.

Page 32: Alfabetos-Lenguajes y Automatas 1

Autómatas finitos y algoritmosCualquier autómata 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 básica es:

Ciclo ejecución autómata

Page 33: Alfabetos-Lenguajes y Automatas 1

Tipos de autómatas finitos

• Autómatas Finitos Determinista (DFA, Deterministic Finite Automate).Deterministic Finite Automate).

• Autómatas Finitos No Determinista (NFA, Non-Deterministic Finite Automate)