Download JFlex y Cup
Document related concepts
no text concepts found
Transcript
Universidad Tecnológica Centroamericana Ingeniería de Sistemas Computacionales Compiladores 1 Ing. Egdares Futch H. Laboratorio #1 Introducción a Eclipse, JFlex y CUP Duración estimada: 3 horas Esta práctica está dedicada a introducirse a las herramientas que usaremos en los cursos de Compiladores 1 y 2, especialmente Eclipse, JFlex y CUP. Uno de los mayores atractivos de la plataforma Eclipse es la flexibilidad con la que cuentan sus extensiones, denominadas plugins. Un plugin es una pequeña aplicación escrita en Java que aumenta la funcionalidad de la plataforma, haciendo que Eclipse se convierta en un entorno de desarrollo para cualquier cosa que cuente con unl plugin adecuado, como validadores, etc. Los objetivos de ésta práctica son: • • • • • Hacer la instalación de Eclipse Crear un proyecto básico de Java Hacer la instalacion básica de JFlex y CUP Hacer la prueba mínima de JFlex y CUP para validar la instalación Crear un proyecto básico de JFlex y CUP intgrado a Eclipse Para hacer esta práctica se asume que previamente se ha instalado el Software Development Kit (SDK) de Java 1.4. No se incluyen las instrucciones en este documento para esta actividad. Consulte http://java.sun.com para referencia. Deberá tomar notas detalladas de los resultados obtenidos en cada paso, ya que debe entregar un informe de laboratorio. Materiales requeridos • • • Un CD con herramientas e información Un computador equipado con Windows XP, 512 MB de memoria RAM y al menos 128 MB libres de espacio en disco Entorno Java instalado A) Instalación del entorno de programación Eclipse + JFlex + CUP 1. Instale Eclipse en la carpeta c:\eclipse. 2. Ejecutar eclipse.exe. La primera vez preguntará por la carpeta (workspace) donde se quieren ubicar los proyectos, elegir la ruta default: c:\eclipse\workspace 3. La primera vez que se ejecute aparecerá una pantalla de bienvenida que podrá ser visitada en cualquier momento desde el menú Help → Welcome. Después de navegar por la información, pasar al entorno de trabajo a través del icono Workbench en la esquina superior derecha y proceder a familiarizarse con los menús y las características del Eclipse. B) Creación de un proyecto Java 1. Proceda a crear un proyecto Java por medio de las opciones File → New→Project→Java→Java Project. Elija un nombre de proyecto (MiPrimerProyecto). En el Package Explorer aparecerá una carpeta dedicada al proyecto. Puede estudiar las opciones disponibles para proyectos colocándose sobre ella y activando el botón derecho del mouse. 2. Pase a la vista de Java por medio de Window → Open Perspective. 3. Se añaden clases al proyecto a través de las opciones File → New→Class. Ingrese “test” en el recuadro Package,y “Test” en el recuadro Class. Asimismo, marque la opción para crear automáticamente el “public static void main(String[] args)”. Presione “Finish”, para que Eclipse proceda a crear los archivos que correspondan. 4. Ingrese la línea “System.out.println(“Hola, mundo!”);” en el cuerpo del método main(). Salve el archivo Test.java y la compilación se hará automáticamente en ese momento. Los errores, si los hubiera, aparecerán en la pestaña inferior de Problems. 5. Para especificar la manera en la que queremos ejecutar las clases que forman parte de un proyecto se crea una configuración. Esto se hace mediante la opción Run → Run... →Java Application → New. En la ventana correspondiente se podrán especificar la clase principal del proyecto (pestaña Main) y los argumentos de entrada (pestaña Arguments). C) Instalación básica de JFlex y CUP 1. Crear un nuevo directorio, llamado c:\compiladores o algo similar, que denominaremos para esta práctica el COMPILER_HOME. Este será el directorio básico de programación. Dentro de este directorio, crear los subdirectorios COMPILER_HOME\src y COMPILER_HOME\src\minimal. Baje dentro de éste último directorio los archivos del “Example: CUP / JLex interoperability” que se encuentra en la sección de Examples/Documentation de la página de CUP: http://www2.cs.tum.edu/projects/cup. Deberá tener al final los archivos minimal.lex y minimal.cup dentro del directorio referido, así como un README. 2. Extraiga los contenidos del archivo http://maestros.unitec.edu/~efutch/jflex-cup.zip al directorio COMPILER_HOME que creó anteriormente. Deberá tener dos directorios nuevos: JFlex y java_cup. 3. Abra una ventana de línea de comandos (CMD.EXE), y vaya al directorio COMPILER_HOME. Verifique y edite los contenidos de los archivos disponibles en COMPILER_HOME\start.bat y COMPILER_HOME\JFlex\bin\jflex.bat para adecuarlos a su instalación. 4. Regrese a COMPILER_HOME y ejecute el comando start_compiladores.bat dentro del shell que abrió previamente. Esto le cargará las variables de ambiente a la sesión, para poder ejecutar el resto. 5. Compile CUP. Cambiar al directorio COMPILER_HOME\java_cup y ejecutar la línea javac java_cup/*.java java_cup/runtime/*.java. Dependiendo de su computador, esto puede tomar unos minutos. 6. Cambiese al directorio COMPILER_HOME\src\minimal, y genere un analizador léxico por medio de JFlex por medio del comando jflex minimal.lex. Esto le generará un archivo llamando Yylex.java. 7. Genere el analizador sintáctico por medio del comando java java_cup.Main minimal.cup. Esto le generará los archivos parser.java y sym.java. 8. Compile el ejemplo por medio del comando javac sym.java Yylex.java. -d . parser.java 9. Si no han habido problemas hasta este momento, ya cuenta con el ejemplo completo. Pruebe su demo ejecutando el comando java -classpath .:$CLASSPATH Example.parser. Este ejemplo acepta inputs de tipo: 1+2; 1*2*3; 5 * (3+2); y puede llevar cualquier cantidad de whitespace entre cada token. Requiere un punto y coma al final de cada operación para desplegar el resultado. Pruébelo con diversos inputs para ver la reacción. 10. Modifique ahora el archivo minimal.lex para que acepte únicamente números menores a 64, generando un mensaje de error apropiado. Recompile desde el paso 6. Es importante que lea los manuales de JFLex que se adjuntan en el directorio de documentación. 11. Modifique ahora el archivo minimal.lex para que presente el resultado cuando se presione <ENTER> en vez de punto y coma. Recompile desde el paso 6. Es importante que lea los manuales de JFLex que se adjuntan en el directorio de documentación. 12. Investigue ahora el formato de la documentación de programas por medio de Javadoc en la página http://java.sun.com/j2se/javadoc/ y agregue documentación de sus modificaciones al archivo minimal.lex, así como indicar el autor, la forma de compilación, el URL de referencia hacia la página de donde tomó el código, la forma de uso y una breve descripción de qué hace el programa. Se hará especial énfasis en una redacción clara y sin faltas de ortografía. C) Creación de un proyecto básico que incluya JFlex y CUP 13. Ingresar a Eclipse, y crear un nuevo workspace en COMPILER_HOME\src\. Crear un nuevo proyecto Java, llamado JFlex Prueba. 14. Agregue a JFlex como una herramienta de trabajo para Eclipse (External Builder). Ingrese a Project → Properties → Builders y agregue un nuevo Builder de tipo External Tool. Debe encontrar las propiedades necesarias para que Eclipse utilize a JFlex como una herramienta integrada para desarrollo, incluyendo las librerías JAR de Flex necesarias. Entregables 1. Una entrada en su blog, válida como la de esta semana, contando acerca de los resultados obtenidos y problemas al hacer este laboratorio. Comentar acerca del uso de Java, Eclipse, Javadoc y otras tecnologías nuevas que no habían tenido la oportunidad de utilizar, e incluir un informe detallando los resultados obtenidos.