Está en la página 1de 10

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de ciencias y sistemas Organizacin de lenguajes y compiladores 1 Proyecto No.

DESCRIPCION GENERAL
OBJETIVO GENERALES Que el estudiante aplique los conocimientos aprendidos en el curso de Organizacin de Lenguajes y Compiladores 1 y Lenguajes Formales de Programacin. Que el estudiante implemente las fases de un compilador en el anlisis lxico y anlisis sintctico. Que el estudiante comprenda y utilice las herramientas JFlex y CUP. Introducir al estudiante a el manejo de errores semnticos.

OBJETIVOS ESPECFICOS Aplicar el concepto de compiladores como alternativa de solucin de problemas. Que el estudiante realice una aplicacin interactiva que trabaje conjuntamente con el analizador. Que el estudiante sea capaz de crear gramticas y de recuperarse de errores lxicos, sintcticos. Iniciar el proceso de aprendizaje de herramientas generadoras de Analizadores Lxicos y Sintcticos.

DESCRIPCIN La empresa Magno Desing necesita crear una herramienta capaz de realizar diferentes diseos de grficos en 8 bits para poder implementar en sus prximos proyectos. Se necesite que travs de un analizador sintctico se puedan crear un lienzo donde sea capaz de mostrar un grafico en 8 bits. Tambin debe proveer una interfaz grfica amigable al usuario para utilizar todo lo que conlleva la creacin de estos grficos como lienzos, colores y la forma de colorear cada uno de los lienzo, de igual forma proveer un editor capaz de realiza la edicin de estos grficos antes de su generacin como imgenes. Archivo Lienzos: Este archivo contiene toda la informacin de los lienzos sus dimensiones, el formato de la imagen, el tamao, etc. Este es el primer archivo que debe de analizarse para tener la informacin de los lienzos para que los siguientes archivos puedan utilizar esa informacin. Archivo Colores: Este archivo contiene toda la informacin acerca de cada color y el lienzo al que pertenece. Este es el segundo archivo que debe de analizarse para tener la informacin de los lienzos para que los siguientes archivos puedan utilizar esa informacin.

Archivo Colorear: Este archivo contiene la informacin de cmo se coloreara el lienzo utilizando coordenadas para realizar el dibujo de la imagen. Este es el ultimo archivo que debe analizarse con el se crearan las imgenes. CARACTERSTICAS DE LA SOLUCIN Para responder a las necesidades que se le plantean, se ha pensado en el desarrollo de una aplicacin en lenguaje Java que permita reconocer el lenguaje para luego realizar el anlisis adecuado. Se debe realizar un editor de texto, el cual sea capaz de escribir, leer, editar y guardar texto con el fin de poder realizar un anlisis sobre l. Con la ayuda de la herramienta JFlex y CUP se deber implementar un analizador lxico y sintctico que reconozca el archivo con que contiene el lenguaje capaz de generar un grafico en 8 bits. Se deben de mostrar de manera funcional y agradable al usuario resumen de errores detectados, la edicin de la imagen y la imagen generado a travs del lenguaje analizado.

DISEO DE LA INTERFAZ Disear una interfaz grafica amigable y cmoda que facilite la creacin o carga de archivos de entrada para la generacin del calendario de actividades. Debe contar con dos ventanas principales, las cuales son descritas a continuacin: Edicin de texto

Deber contener como mnimo los siguientes mens:

Archivo Anlisis Anlisis: Realizara el anlisis lxico y sintctico sobre la entrada que se encuentra sobre el rea de texto, la cual permitir generar la imagen que fue diseada mediante los archivos de entrada. Mostrar errores: Mostrara los errores lxicos y sintcticos identificando el smbolo o lexema, la columna, la fila y la descripcin de cada error que haya sido encontrado. Nuevo: Despliega un nuevo documento en blanco para editar. Abrir: Permite abrir un programa con las extensiones especificadas. Guardar: Permite guardar el programa editado actualmente con la extensiones especificada. Guardar Como: Permite guardar el programa actual con otro nombre con extensin especificada. Salir: Con esta opcin se cerrar la aplicacin.

Imagen Ayuda Manual de Usuario: Se deber mostrar el manual de usuario, para guiar a la persona en la utilizacin de la aplicacin. Manual Tcnico: Se deber mostrar el manual tcnico, para entender como se ha realizado la aplicacin. Acerca de: Permite mostrar informacin de la persona que ha creado la aplicacin. Vista previa: Mostrara la ventana de edicin con el fin de poder retocar la imagen y luego generar una imagen ya modificada y su respectico archivo de entrada. Generar Imagen: Generara la imagen que ha sido diseada desde los archivos de entrada.

Contara con cuatro pestaas: Lienzo Sern cargados los archivos que contendrn la configuracin de los lienzos que se podrn utilizar. Colores Sera cargado el archivo que contendr la informacin de todos los colores con los que se podrn utilizar para editar el lienzo. Colorear Contendr el archivo que le dar color al lienzo utilizando los colores que previamente fueron especificados. Errores Mostrara los errores que fueron encontrados durante el anlisis en formato HTML, mostrando el smbolo o lexema que provoco el error, fila, columna y una descripcin.

Edicin de imagen

Colores

Permitira ver de forma grafica los colores que se han cargado por medio del archivos de entrada, mostrando una vista previa del color y el identicador que le ha sido asignado. Tambien mostrara el color que se esta utilizando actualmente y contara con un borrador para eliminar cualquier erroque se haya cometido.

Lienzo

El rea de lienzo ser donde se pueda editar o crear la vista previa de una imagen y asignarle un tamao para generar la imagen. Entrada e Historial

Para automatizar la forma de pintar el lienzo se contara con la opcin de pintar en modo texto que permitir pintar ms de un cuadro a las vez hacindolo ms dinmico e intuitivo. Contara con un historial que sea capaz de mostrar todas las entradas que se han hecho y los errores que se han encontrado en ellas.

DESCRIPCIN DEL LENGUAJE Archivo de Lienzos Contendr los siguientes atributos: Identificador: Sera el nombre nico que se le dar a cada lienzo. Fondo: Donde se indicara el color de fondo que tendr el lienzo, pudiendo ser descrito en RGB o en cdigo hexadecimal iniciado por un numeral (#) seguido de seis nmeros hexadecimales, los valores en RGB pueden de aparecer en cualquier orden y tan solo una vez. Tamao: Indicara el tamao del lienzo teniendo como atributo cuadro que especificara el tamao de cada cuadro y dimensin que dar el numero de cuadros por lado. Imagen: Indicara el tamao de salida de la imagen. Siendo P:Pequeo, N:Normal y G:Grande, se puede indicar en cualquier lugar pero tan solo una vez. Nombre: se indicara con una cadena el nombre de salida de la imagen que se generara, se puede indicar en cualquier lugar pero tan solo una vez. Tipo: Indicara el tipo de salida de imagen PNG, JPG o GIF, se puede indicar en cualquier lugar pero tan solo una vez.

Pueden ser declarados ms de un lienzo por archivo pero deben estar separados por coma (,) y sus atributos pueden estar en cualquier orden y solo una vez. Su extensin ser .lnz. Ejemplo: {LienZOs:{ EscenARio1:{ NombrE:Armadillo Tipo:PNG Fondo:{ Red: 25 Blue:89 Green: 45 } TamANho:{ cuadro:10 dimeNsion: 11 } Imagen: P }, EsCENARio2:{ Imagen: G Fondo:{ HEX:#ABB36c } TamANho:{ cuadro:20 dimeNsion: 5 } NombrE:SuperMan Tipo:GIF } } }

Archivo de Colores Contendr los siguientes atributos: Lienzo: Se especificara a que lienzo pertenecen los colores, este lienzo debe de existir para que pueden ser asignados los colores. Identificador: Ser el nombre nico que se le asignara a un color sobre un lienzo, pueden existir colores con el mismo identificador sobre diferentes lienzos.

Se especificara el color pudiendo ser descrito en RGB o en cdigo hexadecimal iniciado por un numeral (#) seguido de seis nmeros hexadecimales, los valores en RGB pueden de aparecer en cualquier orden y tan solo una vez. Pueden ser declarados uno o muchos colores sobre un lienzo separados por coma (,) y muchos lienzos separados de igual forma. Su extensin ser .cls. Ejemplo: {Colores:{ EscenARio1:{ Color1:{ Red:250 Blue:255 Green:55 }, Color2:{ Hex:#Ac28B9 } }, EsCENARio2:{ Color1:{ Green:55 Red:250 Blue:255 } } } } Archivo Colorear Estar divido en dos partes: Declaracin de variables: Se podr declarar variables que luego sern utilizadas, toda variable ser de tipo entero y tendr un valor de cero (0) al iniciar. - Tratamiento de variables: Las variables podrn ser creadas y tambin asignarle un valor. - Operaciones aritmticas: Se podrn realizar operaciones aritmticas de suma y resta. Utilizaran notacin prefija y constara con solo 2 operandos.

Var ini; Var tam,tam2,fin; setvar(tam,5); setvar(fin,(+ 5 3)); setvar(tam2,(- fin 2)); Colorear el lienzo: Se podr asignar valor a variables mas no crearlas, y permitir ingresar las coordenadas de cmo pintar el lienzo. - Lienzo: Se identificara el lienzo que se pintara. - Asignacin de valor: Se permitir asignarle valor a las variables ya creadas sin embargo no se podrn crear. - Pintar: permitir darle color a lienzo utilizando las coordenadas y color indicados por ejemplo: Pintar(color,PosX,PosY). Se pondr indicar rangos colocando el punto inicial seguido de dos puntos (..) y el punto final, este ser el mismo lenguaje que podr ser utilizado en la ventana de edicin como entrada. - Operaciones aritmticas: Se podrn realizar operaciones aritmticas de suma y resta. Utilizaran notacin prefija y constara con solo 2 operandos. setVar(fin, 11); Pintar(color1,1,5); pintar(color2,2..5,7); pintar(color1,tam,2..fin); pintar(color2,ini,(- fin 2)); Su extensin ser .pnt. Ejemplo: Vars< var tam, ini, fin; setVar(tam, (+ 2 4)); > Pintar:EscenARio1< setVar(fin, 11); Pintar(color1,1,5); pintar(color2,2..5,7); pintar(color1,tam,2..fin); pintar(color2,ini,(- fin 2)); >

Comentarios Existirn dos tipos de de comentarios: Multilnea: Estos comentarios podrn contener cambios de lnea. Por ejemplo: /*Ejemplo Comentario*/ Lnea simple: Estos comentarios no podrn contener cambios de lnea. Por ejemplo: //Comentario lnea simple PROCEDIMIENTO Las dos formas de ingresar la informacin son las siguientes: Proporcionando un archivo de entrada que debe ser cargado a la aplicacin. Ingresando la cadena de forma manual en la aplicacin.

Y la generacin de las imgenes debe seguir alguno de estos caminos.

ARCHIVOS A GENERAR Un archivo de imagen en formato PNG, JPG o GIF con la imagen que fue diseada por medio del lenguaje especificado.

Un archivo pnt con las modificaciones realizadas si se edito la imagen en la vista previa.

CONSIDERACIONES El proyecto debe ser realizado con en el lenguaje Java con las herramientas JFlex/JLex y CUP en caso contrario no tendrn derecho a calificacin. La realizacin del proyecto es individual, copias tendrn un valor de cero y sern reportadas al Ingeniero y a la Escuela de Sistemas. El proyecto podr ser desarrollado en Windows o OS X o GNU/Linux. Los archivos tendrn extensin cls, lnz y pnt para que la aplicacin los reconozca. El CD a de entregar debe contener: Todo lo que respecta a la fase de anlisis (archivos .jflex/.jlex, .CUP, .bat etc.) Aplicacin Java, el nombre de la aplicacin debe contener el siguiente formato: Proyecto1_<numero_carnet>, por ejemplo: Proyecto1_200714856. Archivo JAR, probado dado que no se calificara a travs de ningn IDE. Archivos de Entrada, que sean reconocibles por su aplicacin. Manuales de Usuario y Tcnico. La entrega ser 13/04/2013, el horario de entrega y de calificacin se estar informando por la Universidad Virtual.

También podría gustarte