Sie sind auf Seite 1von 4

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 -d . parser.java


sym.java Yylex.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.

Das könnte Ihnen auch gefallen