Ing. Francisco Ríos Acosta SP-PS1 : generación de código java para un análisis léxico Instituto Tecnológico de la Laguna, julio del 2009. pag. 1 de 29 SP-PS1 : generación de código java para un análisis léxico
FRANCISCO RÍOS ACOSTA Instituto Tecnológico de la Laguna Blvd. Revolución y calzada Cuauhtémoc s/n Colonia centro Torreón, Coah; México Contacto : [email protected]
Resúmen. Se presenta la nueva característica añadida al software SP-PS1 que consiste de la generación de código java para efectuar un análisis léxico. El ambiente IDE utilizado para generar la aplicación java que efectúe el análisis léxico de un texto de entrada, es el NetBeans 6.7. El software SP-PS1 genera 2 clases : Lexico y Automata. La clase Automata está anidad en la clase Lexico. Antes de poder generar el código de las clases antes mencionadas, es necesario editar las expresiones regulares para cada token que se requiera reconocer mediante el análisis léxico. Luego, debemos aplicar las reglas de Thompson para obtener el AFND que reconozca a cada token. Enseguida aplicamos el algoritmo de construcción de subgrupos para efectuar la conversión del AFND de Thompson a un AFD. Este AFD producido en la etapa de construcción de subgrupos, sirve de entrada para el algoritmo de particiones que se encarga de generar el AFD óptimo o reducido, al cual le aplicamos una traducción para almacenar su alfabeto, sus estados de inicio, finales aceptación- y de transición, además de la función move() tabla de transición- de dicho AFD óptimo. El conjunto de AFDs óptimos que reconocen a los tokens para el cual es diseñado el analizador léxico, es ensamblado teniendo en cuenta el orden de cada AFD, es decir, con que AFD inicia el objeto analizador léxico el reconocimiento del texto de entrada, si falla dicho AFD con qué otro AFD sigue tratando de reconocer el analizador léxico al texto en su entrada, y así sucesivamente hasta reconocer o presentar en su caso un error de análisis léxico. Después de ensamblar en orden cada AFD, la configuración del Retraer() se hace para cada AFD cuyo estado de aceptación requiera de leer un carácter que no forma parte del lexema del token reconocido. La etapa siguiente es simular el analizador léxico dentro de SP-PS1 para depurar errores en las expresiones regulares que producen a los AFDs o bien, para saber si todo está bien hecho. Una vez hecha la simulación, podemos generar el código en java (otros códigos soportados son el C++, ObjectPascal, C#).
SP-PS1 : generación de código java para un análisis léxico Instituto Tecnológico de la Laguna, julio del 2009. pag. 3 de 29 Ing. Francisco Ríos Acosta 1 Introducción. Dentro de este trabajo se construye una aplicación java usando el ambiente Netbeans 6.7, que efectúe un análisis léxico sobre una entrada ingresada en un componente de texto. Un objeto denominado oAnaLex perteneciente a una clase Lexico, será el encargado de realizar la tarea de analizar lexicamente al texto de entrada. La clase Lexico es generada usando el software SP-PS1, el cual genera también a la clase Automata que está anidada dentro de la clase Lexico. La fig.1.1 contiene la interface gráfica de la aplicación java que se desea implementar. Se observa un componente JTextArea que recibe el ingreso del texto a analizar. Mediante el componente JButton es disparada la tarea del análisis léxico del texto ingresado en el componente JTextArea. El resultado del análisis léxico es un conjunto de parejas token- lexema que es visualizado en el componente JTable. Fig. No. 1.1 Aplicación java para efectuar un análisis léxico.
Los pasos a seguir para lograr construir la aplicación java son : 1. 2. 3. 4. 5. 6. Descargar el IDE NetBeans 6.7 si no se tiene en la computadora de trabajo-. Descargar el generador de código para el análisis léxico, SP-PS1. Tokens a reconocer por el analizador léxico. Generación del código java para el analizador léxico usando SP-PS1. Clase Lexico y clase Automata. Construcción de la aplicación java que efectúa el análisis léxico. El código generado en java por el software SP-PS1 puede ser mejorado, adaptado, según los requerimientos del usuario del programa. La intención de agregar esta nueva característica al SP-PS1, es introducir tal vez motivar- a mis alumnos del Instituto Tecnológico de la Laguna en el uso del lenguaje de programación java, teniendo como escenario la materia de Programación de Sistemas. Actualmente el lenguaje de programación que se utiliza para el desarrollo de aplicaciones es el C#. De antemano agradezco a todos mis alumnos del ITL tanto actuales como egresados, su comprensión durante el transcurso de las horas de clase que toman tomaron- con un servidor, además de su gran ayuda que recibo en cada retroalimentación que tienen la confianza de comunicarme. 2 Descarga del IDE NetBeans 6.7. El IDE NetBeans es uno de varios IDEs disponibles para el desarrollo de programas cuyo lenguaje de programación es el java. Este ambiente es open-source además de que es gratis, y se obtiene del sitio : www.netbeans.org, fig. 2.1.
Ing. Francisco Ríos Acosta SP-PS1 : generación de código java para un análisis léxico Instituto Tecnológico de la Laguna, julio del 2009. pag. 4 de 29 Fig. No. 2.1 Sitio www.netbeans.org.
Luego se debe hacer click en el botón Download NetBeans IDE, de manera que se muestra otra página indicando los paquetes que se pueden descargar, fig. 2.2. Fig. No. 2.2 Paquetes disponibles en www.netbeans.org.
Ing. Francisco Ríos Acosta SP-PS1 : generación de código java para un análisis léxico Instituto Tecnológico de la Laguna, julio del 2009. pag. 5 de 29 Una vez que se selecciona el idioma, la plataforma, y se ha ingresado el correo electrónico, se debe navegar hacia abajo de la página mostrada
Página siguiente |