Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas Organización de Lenguajes y Compiladores 1 2do.

semestre del 2010

Primera Práctica
1. Descripción General
1.1 Objetivo General Que el estudiante aprenda a utilizar la herramienta de análisis léxico y [JLex|JFlex] con la finalidad de implementar un editor de texto. 1.2 Objetivos Específicos • Manejar e Implementar expresiones regulares para reconocer un lenguaje de entrada. • Realizar un editor de texto avanzado que reconozca palabras reservadas y resalte como un editor de texto avanzado [Kate, notepad++]. • Aprender a utilizar las herramientas de [JLex|JFlex]. 1.3 Descripción La empresa XYZ requiere la implementación de un editor de texto avanzado para facilitar el uso y visualización de las palabr reservadas del lenguaje C# que utilizan los palabras empleados para la utilización del lenguaje.

2. Características de la solución
Para responder a las necesidades que se le plantean, se ha pensado en el Desarrollo de una aplicación en lenguaje JAVA que permita r reconocer definición de clases, variables y métodos, palabras reservadas, comentarios, modificadores, modificadores operadores, expresiones y de métodos en lenguaje C#. Con el único objetivo de que resalte las palabras con otro color de acuerdo a la especificación.

Ayuda Manual de Usuario Manual Técnico Temas de Ayuda • 2. o Manual Técnico: Se deberá demostrar el manual técnico realizado por el estudiante para entender como se ha realizado la aplicación.1 Diseño de la interfaz En la aplicación se deberán demostrar como mínimo los siguientes menús. o Errores Muestra los errores al cargar el programa de c# o Salir: Con esta opción se cerrara la aplicación. Se deben de mostrar de manera funcional y agradable al usuario errores: léxicos. Ayuda o Manual de Usuario: Se deberá demostrar el manual de usuario realizado por el estudiante para guiar a la persona en la utilización de la aplicación. tomando en cuenta que deberá de ser totalmente grafica.Con la ayuda de las herramientas [JLex|JFlex] se deberá implementar un analizador léxico que reconozca el archivo con la definición de un lenguaje en C#. sintácticos y semánticos. Archivo Nuevo Abrir Guardar Guardar Como Compilar Errores Salir La especificación del menú será de la siguiente forma • Menú o Nuevo: Despliega una nueva pestaña en la cual el usuario podrá crear un nuevo programa en lenguaje c#. Además la aplicación debe ser capaz de implementar el manejo y recuperación de errores. o Guardar Como: Permite guardar el programa en c# con un nombre nuevo. o Abrir: Permite abrir un programa en c# para poder seguir editándolo o Guardar: Permite guardar el programa en c# que está siendo editado.2 Estructura del archivo de entrada //definición de Clase { /* Definición de variables con asignación opcional Definición de constructores y métodos */ } . 2. o Temas de Ayuda: Permite mostrar información de la persona que ha creado la aplicación.

%) o Relacionales (==. • Palabras reservadas o Tipos (int. en los cuales se pueden incluir sentencias de ciclos. repeat) o Sentencias de impresión (ConsoleWrite.*. doublé. String) o Sentencias (if. condicionales.!=. además de que se definen una lista que incluirá constructores y métodos a utilizar./. declaraciones de variables con asignación y asignaciones sin declaración de variables. break) Operadores o Aritméticos (+.-.>.!) o Asignación(=) Comentarios o de una línea (//) o de varias líneas(/**** */) Identificadores (Nombres de Clases. El archivo de entrada que deberá de reconocer los componentes siguientes del lenguaje c#. do while.line) o Tipos devueltos(int. return. cadenas) • • • • . decimales.El lenguaje a desarrollar será sensible al texto por lo que deberá de hacer distinción entre mayúsculas y minúsculas. switch. Variables y Métodos) Contantes (enteros. doublé. while. String) o Otras palabras (this.>=) o Lógicos(&&. for.||. Además se aceptaran comentarios en cualquier parte del archivo como los siguientes // Comentario de una línea /* Comentario De varias Líneas*/ En resumen se definen las variables que podrán ser una lista de ellas con un tipo asociado y una asignación opcional.<=.<.

3 Funcionalidad de la aplicación La aplicación debe ser capaz de cargar un archivo de entrada y reconocer los componentes del archivo de entrada especificados antes.5 Documentación • • • • • • Manual de Instalación y Desinstalación Manual Técnico (debe de incluir la(s) gramática(s) que se utilizó. En el reporte de errores se debe indicar la posición donde ocurrió (fila columna) y qué provoco el error. esto quiere decir que se subrayaran los errores encontrados con algún color que los resalte. Componentes de C# Palabras reservadas Operadores Comentarios Identificadores Constantes Color Azul Anaranjado Gris Rojo Verde 2. Error Descripción Columna Fila 2. Se evaluará la respuesta de la aplicación a los errores.2. Resaltándolos con diferentes colores de acuerdo a la siguiente tabla. la gramática es distinta al archivo que utilice para la herramienta que genera el analizador) Manual de Usuario Archivos de Prueba .4 Manejo de errores La aplicación deberá reportar los errores léxicos que encuentre al momento de ingresar un nuevo archivo.

a excepción del archivo ejecutable de la aplicación o de lo contrario no serán tomados en cuenta para la nota final del proyecto. La práctica deberá implementarse en lenguaje JAVA. solamente la hoja de calificación y la hoja de elementos elaborados de la aplicación. .). Fecha de entrega: sábado 21 de agosto de 2010. por ningún motivo. Todos los errores generados por la aplicación deberán ser de manera amigable al usuario o de lo contrario no serán calificados. Es obligatorio que la aplicación tenga un instalador el cual se deberá realizar con una aplicación especial para hacer instaladores profesionales (Inno. Se deberá tomar en cuenta que durante la calificación no podrán estar terceras personas alrededor o de lo contrario no se calificará el proyecto. Copias de proyectos o de la gramática tendrán una nota de 0 puntos y Las sanciones por parte de la Escuela de Sistemas.3. Los comentarios de múltiples líneas deberá realizarse con estados en [JLex|JFlex]. etc. CD deberá contener: El instalador de la aplicación el cual deberá estar incluida la documentación. NSIS.bat”. Para leer los archivos de entrada se deberá utilizar la herramienta [JLex|JFlex] Se valorará la calidad de la información proporcionada por el compilador cuando se produzcan errores así como la presentación de la interfaz gráfica y amigabilidad de la aplicación. No se aceptará la ejecución de procesos en consola u otro tipo de programa. No deberá entregar la documentación impresa. La práctica se deberá realizar en forma individual. en caso contrario este no será calificado. La calificación de la práctica será personal y durará como mínimo 15 minutos. por lo que no se permitirá archivos “. Se debe tomar en cuenta que la funcionalidad es importante para la calificación del mismo. En sobre con los datos completos. Notas Importantes • • • • • • • • • • • • NO SE DARÁ PRORROGA. archivos de prueba y código fuente de la aplicación. en un horario que posteriormente será establecido.

} } .0.c++){ c=c+”1”. String c.a=0.line(b).c=””.b=b.4. } Objeto(int a. } else if(a!=b) { write.String c){ this. this. this. } } String metodofor(){ for(int c=0. Anexo A continuación se muestra un archivo de entrada y su correspondiente salida como ejemplo.line(a). } void metodoIf(){ if(a==b){ write.c<10.a=a. this.c=c.b=0. Objeto(){ this. this. Class Objeto{ //definición de variables int a.double b. } return c. double b.

Sign up to vote on this title
UsefulNot useful