P. 1
Practica1_Compiladores1

Practica1_Compiladores1

|Views: 46|Likes:
Publicado porbrac

More info:

Published by: brac on Apr 22, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/22/2011

pdf

text

original

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.

o Manual Técnico: Se deberá demostrar el manual técnico realizado por el estudiante para entender como se ha realizado la aplicación. o Guardar Como: Permite guardar el programa en c# con un nombre nuevo. Además la aplicación debe ser capaz de implementar el manejo y recuperación de errores.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#. 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. 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.1 Diseño de la interfaz En la aplicación se deberán demostrar como mínimo los siguientes menús. tomando en cuenta que deberá de ser totalmente grafica. 2. Ayuda Manual de Usuario Manual Técnico Temas de Ayuda • 2. Se deben de mostrar de manera funcional y agradable al usuario errores: léxicos. 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#. o Errores Muestra los errores al cargar el programa de c# o Salir: Con esta opción se cerrara la aplicación.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 */ } . o Temas de Ayuda: Permite mostrar información de la persona que ha creado la aplicación. sintácticos y semánticos.

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

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

La calificación de la práctica será personal y durará como mínimo 15 minutos. No deberá entregar la documentación impresa. En sobre con los datos completos. NSIS. Se debe tomar en cuenta que la funcionalidad es importante para la calificación del mismo. por lo que no se permitirá archivos “. 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. Fecha de entrega: sábado 21 de agosto de 2010. 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.bat”. La práctica deberá implementarse en lenguaje JAVA. archivos de prueba y código fuente de la aplicación. . Es obligatorio que la aplicación tenga un instalador el cual se deberá realizar con una aplicación especial para hacer instaladores profesionales (Inno. Todos los errores generados por la aplicación deberán ser de manera amigable al usuario o de lo contrario no serán calificados. por ningún motivo. CD deberá contener: El instalador de la aplicación el cual deberá estar incluida la documentación. en caso contrario este no será calificado. en un horario que posteriormente será establecido. solamente la hoja de calificación y la hoja de elementos elaborados de la aplicación. etc. Los comentarios de múltiples líneas deberá realizarse con estados en [JLex|JFlex]. No se aceptará la ejecución de procesos en consola u otro tipo de programa. 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.3. La práctica se deberá realizar en forma individual. Notas Importantes • • • • • • • • • • • • NO SE DARÁ PRORROGA.). 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.

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->