Uso del código generado en SP-PS1 para una aplicación Windows C# que efectúe un análisis léxico.
Enviado por FRANCISCO RIOS ACOSTA
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 |