Clase2 Sesion2
Clase2 Sesion2
Clase2 Sesion2
Escuela de Posgrado
Unidad de Posgrado de la FIIS
Grafo de Transiciones
Tabla de Transiciones
Tabla de transiciones
La manera más sencilla de implementar esto en un computador es por
medio de un cuadro o matriz en el cual a cada estado le corresponde una
fila y a cada símbolo una columna (tabla de doble entrada). Esta tabla
recibe el nombre de “Tabla de Transiciones” del autómata
Cada entrada representa el conjunto
de estados que puede ser alcanzado
por una transición desde el estado i
con la entrada j.
Ejemplo: La tabla de transiciones
de AFN para el lenguaje
representado por la expresión
regular (a | b)*abb.
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
AUTOMATAS FINITO NO DETERMINISTA-AFN
termina en 3 que es el
estado de aceptación
entonces dicha cadena
pertenece al grafo
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
AUTOMATAS FINITO NO DETERMINISTA-AFN
Grafo de Transiciones
El siguiente es el grafo de transiciones que reconoce el lenguaje
( a a*| bb* ) a, b, aaaaa,bbbbb
Símbolo/ a b Ꜫ
Estados
0 - - {1,3}
1 2 - -
2 2 - -
3 - 4 -
4 - 4 -
a* Ø,a,aaaa,aaa…..a
a, aaa,aa…aaa
a+
Ø,a
a?
a|b
a,b
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
AUTOMATAS FINITO DETERMINISTA-AFD
Definiciòn
Un AFD es un caso especial de un AFN en el cual:
1. No existe transiciones Ø
2. Para cada estado S y cada símbolo de entrada a, hay a lo sumo una
arista etiqueta.
Un autómata finito “determinista” (AFD) siempre está en un solo
estado después de leer cualquier secuencia de entrada. El término
“determinista” hace referencia al hecho de que, para cada
entrada, existe un único estado al que el autómata pueda llegar
partiendo del estado actual. Por lo tanto es fácil determinar si un AFD
acepta una cadena, ya que hay a lo sumo un camino desde el
estado de inicio etiquetado con esa cadena.
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
AUTOMATAS FINITO DETERMINISTA-AFD
Un AFD es un modelo matemático formado por:
1) Un conjunto finito de “estados” S.
2) Un alfabeto de “símbolos de entrada” V
3) Un estado S0 que se considera “de inicio” o “inicial” (S0 ϵ S )
4) Un conjunto de estados F considerados “estados de aceptación” o
“finales”. (F incluye S )
5) Una función de transición “mueve” que toma como argumentos un
estado de S y un símbolo de entrada de V y devuelve un estado de S.
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
AUTOMATAS FINITO DETERMINISTA-AFD
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
DIAGRAMA DE TRANSICIONES
• Compuestos por estados y transiciones entre éstos
o Círculos: estados
o Arcos etiquetados: transiciones
• Sirven para representar lo que sucede a medida que se toman
caracteres de la entrada
o Cada círculo = un estado
o Cada arista = un carácter en la entrada
o Doble círculo = aceptación de un elemento léxico
o Asterisco = el último carácter se debe devolver a la entrada
(retroceso)
o Otro = cualquier carácter no asignado a otra flecha
• No tiene estados de error (sin transición = error)
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
DIAGRAMA DE TRANSICIONES
Ejemplo: se muestra un reconocedor de números enteros sin signo
mediante la ER [0-9]+ ò D+ D{0,1,…9} 3456+suma+
D D X=45+x
entero
Tabla de
transiciones D
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
DIAGRAMA DE TRANSICIONES
Para especificar correctamente el funcionamiento de un Analizador
léxico se debe utilizar una maquina de estados llamado Diagrama de
transiciones (DT) son grafos dirigidos muy parecidos a un AFD, con las
siguientes diferencias:
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
DIAGRAMA DE TRANSICIONES
En el caso más general, se suelen utilizar estos diagramas de transiciones
para reconocer los tokens de entrada, construidos a partir de sus patrones
correspondientes, expresados mediante las respectivas expresiones
regulares. Estos autómatas se combinan en una máquina única que,
partiendo de un único estado inicial, sigue un recorrido u otro por los
estados hasta llegar a alguno de los estados de aceptación. En función de
en cuál se detenga devolverá un token u otro.
Si no llega a un estado de aceptación o recibe una entrada que no le
permite hacer una transición a otro estado, entonces dará error.
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
DIAGRAMA DE TRANSICIONES
Ejemplo: se muestra un reconocedor de números enteros sin signo
mediante la ER [0-9]+
• Ejemplo:
– while palabra reservada “while”
– letra (letra | digito)* identificador
– Si en la entrada aparece “while”, se elegirá la palabra reservada
por estar primero.
– Si estas especificaciones iniciales aparecieran en orden inverso, se
reconocería un token identificador
4
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
Guía de resolución de
ejercicios
Uso de la desicion
24
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
Ejercicios de autómatas finitos no
deterministas -AFN
Describir la expresión regular. 2 ejemplos de cadenas construir su
AFN escribir el MM. Y hacer tabla de transiciones
1. (a│b)? a*b+
2. (a│b) (a│b)
3. ab (a│b)? (a│bb)
4. a?(a│b) (a│b)*
5. b+ (a│bb)?a* b, ba
6. a (a│b)?ab*a
7. (a│b)*ba? (a│b)+
8. b? (aa*│bb*)a
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
Ejercicios de diagramas de transiciones
Teoría de Lenguajes
Teoría de lenguajes de Programación
y compiladores UPFIIS-UNACMg. Msc.
Dra.Ing.
Msc.Sally
SallyTorres
Torres
Identificación de palabras reservadas
EJEMPLO: Constrúyase un diagrama de transiciones para el
reconocimiento de identificadores, números enteros sin signo y las
palabras reservadas “do” y “done”.
Notación: d = dígito; l = letra; t = otro; f = otro alfanumérico (dígito o
letra); a n = ir al estado n.