Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Ing. Francisco Ríos Acosta
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 3 de 16
1. Aplicación Windows C#, analizador léxico para reconocer los tokens id y opasig.
La idea es construir una aplicación Windows C#, que utilice el código generado en C# por el programa
SP-PS1.
Esta aplicación consiste de una interfase gráfica de usuario semejante a la vista de la simulación del
analizador léxico usando SP-PS1. La aplicación Form1 en ejecución es mostrada en la fig.#1.1.
PASO
1.-
Creación del directorio que contiene al programa SP-PS1.
Usaremos el programa SP-PS1 para generar los AFD óptimos o reducidos que reconocen a los tokens
Id y OpAsig.
Lo primero que debemos hacer es crear un directorio de trabajo que albergue al programa SP-PS1. El
directorio de trabajo llámalo como gustes. En él deberás copiar los archivos :
Fig. No. 1.1 Aplicación Windows C# que analiza léxicamente la entrada x=y*(radio 1);.
En la figura 1.1 sólo son reconocidos los tokens Id y OpAsig. Es decir, el analizador léxico sólo
reconoce a estos 2 tipos de tokens.
Cuando el usuario teclea un texto de entrada y hace click sobre el botón con leyenda ANALISIS
LEXICO, la aplicación muestra a las parejas TOKEN-LEXEMA en el componente DataGridView que
fueron reconocidas durante el análisis léxico.
Veamos y sigamos cada uno de los pasos para construir la
aplicación Windows C# visto en la figura #1.1.
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 4 de 16
Ing. Francisco Ríos Acosta
ps1.exe
Codigo1.txt
Codigo2.txt
Codigo3.txt
Codigo4.txt
Codigo5.txt
Codigo6.txt
Luego ejeucta el programa ps1.exe que te responde con la aplicación mostrada en la figura 1.2.
PASO
2.-
Fig. No. 1.2 Interfase gráfica del programa SP-PS1.
Generación del AFND usando las reglas de Thompson, que
reconoce al token Id.
Entremos al menú Archivo | Nuevo e ingresemos la expresión regular vista en la figura #1.3.
Fig. No. 1.3 Edición de la expresión regular Id.exr.
Luego salvemos la expresión regular usando Archivo | Salvar Como con el nombre Id.exr.
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Ing. Francisco Ríos Acosta
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 5 de 16
Usemos Expr Regulares | Compilar para saber si hemos incurrido en errores. Cuando no tenemos
errores en nuestra expresión regular, la aplicación muestra una caja de mesaje donde nos los hace
saber, figura #1.4.
Fig. No. 1.4 Expresión regular Id.exr, compilada de forma exitosa.
Ahora aplicamos las reglas de Thompson a la expresión regular que acabamos de compilar. Usemos
la trayectoria del menú de SP-PS1 Automatas | Thompson (AFND) y observemos el AFND
construido a partir de la expresión regular Id.exr, fig. #1.5.
Fig. No. 1.5 AFND correspondiente a la expresión regular Id.exr.
Observemos en la fig#1.5, que el AFND reconoce leyendo un caracter que no forma parte del lexema
encontrado (transición del estado 12 al estado 13 de aceptación).
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Ing. Francisco Ríos Acosta
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 6 de 16
PASO
3.-
Generación del AFD algoritmo de construcción de subgrupos-
a partir del AFND obtenido en el paso 2.
La opción del menú para construir el AFD que reconoce al token Id es :
Automatas | Subgrupos (AFD).
SP-PS1 responde con una nueva ventana, fig#1.6.
Fig. No. 1.6 Interfase de usuario para la obtención del AFD según el algoritmo de construcción de subgrupos.
El primer botón con la imagen de la punta de una flecha, es el que sirve para visualizar al autómata
finito determinístico AFD construido a partir del AFND obtenido al aplicar las reglas de
Thompson.
Este AFD puede que no sea el óptimo, por lo que debemos de aplicarle un algoritmo llamado de
particiones.
Antes de obtener el AFD óptimo o reducido, observemos la fig#1.7 que muestra el AFD obtenido
con el algoritmo de construcción de subgrupos.
PASO
4.-
Generación del AFD óptimo para el token Id.
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Ing. Francisco Ríos Acosta
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 7 de 16
Fig. No. 1.7 AFD que reconoce al token Id.
En esta etapa haremos 2 cosas : primero obtenemos el AFD óptimo o reducido, para luego salvar
toda su información.
Hagamos un click sobre el botón con la imagen del zoom. El AFD óptimo es visualizado por el
programa SP-PS1, fig#1.8.
Fig. No. 1.8 AFD óptimo que reconoce al token Id.
Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Ing. Francisco Ríos Acosta
Instituto Tecnológico de la Laguna, a 17 de diciembre del 2007.
pag. 8 de 16
Con el fin de poder generar el analizador léxico en etapas posteriores, debemos salvar la
información de este AFD reducido. Hagamos un click sobre el botón con una imagen de un
diskette. A la pregunta de SI SALVAMOS EL AFD REDUCIDO contestemos que sí, fig#1.9.
PASO
5.-
Fig. No. 1.9 Almacenando la información del AFD óptimo.
Generación del AFD óptimo para el token OpAsig.
Seguimos los mismos pasos utilizados para obtener el AFD óptimo del token Id (pasos 2
Página siguiente |