Automatas y compiladores tablas de transición análisis léxico
1. Teoría de Autómatas y
Compiladores
Germania Rodríguez
grrodriguez@utpl.edu.ec
2. De AFN a AFD
• Eliminar las transiciones con la cadena vacía ε
Construir cerraduras ε que son el conjunto de todos los
estados que pueden alcanzar las transiciones ε desde
un estado.
• Eliminar transiciones múltiples en un carácter de
entrada simple.
Considerar el conjunto de estados que son alcanzables
al igualar el carácter simple.
3. De AFN a AFD
• Eliminar las transiciones con la cadena vacía ε
Construir cerraduras ε de un estado s como el conjunto
de todos los estados alcanzables por una serie de cero
o más transiciones ε y escribimos como conjunto s.
Ejemplo:
4. Tablas compactas
Propósito simplificar la Tabla de transición
(normalmente de gran tamaño) en dos
tablas.
Tabla de transición o de símbolos Formada por: filas –
estados del autómata, columnas – caracteres admitidos por
el Lenguaje.
1. Asignar a cada carácter del lenguaje un
número que representa su posición en el
Lenguaje y en las columnas de la Tabla de
transición o Tabla base.
5. Tablas compactas
2. Obtener la Tabla1 formada por:
• Tres columnas y número de Filas T1C1 T1C2 T1C3
igual a los estados de la Tabla
0 1
original.
1
• Primera columna T1C1 llena con los
estados de la Tabla de transición 2
• Segunda columna T1C2 su primer
elemento siempre será 1 a partir del
segundo será la suma de los
elementos previos en T1C2 y T1C3
• La columna T1C3 se llena con el
número de transiciones válidas o
diferentes de Error.
6. Tablas compactas
3. Obtener la Tabla2 formada por:
• Tres columnas y número de Filas T2C1 T2C2 T2C3
igual a la suma de T1C2+T1C3-1
1 1
• La primera columna T2C1 se llena
2
con una secuencia de números
iniciando desde 1 3
• Para la segunda columna T2C2 se
recorre cada fila de la tabla base de n
izquierda a derecha y se llena T2C2
con los estados de transición o
aceptación encontrados diferentes
de Error.
• La columna T2C3 con número de
correspondiente al carácter con el
que se llega al estado almacenado
en T2C2 en la Tabla Base.
8. Proceso Análisis Léxico
Para obtener el token válido o de error desde
las Tablas compactas se debe recorrer
– En la Tabla1 ubicar el estado (de inicio para el
primer caso) en T1C1 leer: T1C2 que la fila
correspondiente en la Tabla2 y T1C3 el número
de posibilidades a recorrer.
– En la Tabla2 se ubica la fila señalada por T1C2 y
se recorre T2C3 mientras sea menor o igual al
valor proporcionado por T1C3 hasta ubicar el
número del carácter de entrada en caso de
ubicarlo leer T2C2 que indicará la fila T1C1 para
repetir el proceso o el token a devolver.
9. Bibliografía
• Kenneth C. Louden, Construccion de Compiladores
Principios Y Práctica
• Universidad Jaume, Open Course Ware –II20 Teoría de
autómatas y lenguajes formales en: http://e-ujier.uji.es/pls/
w w w / ! g r i _ w w w . e u j i 2 2 1 0 1 ?
p_id=7&p_tipo=A&p_curso=II20&p_idioma=ES