Practica1_Compiladores1

6

Click here to load reader

Transcript of Practica1_Compiladores1

Page 1: Practica1_Compiladores1

Primera

1. Descripción General

1.1 Objetivo General

Que el estudiante aprenda a utilizar la

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

resalte como un editor de texto avanzado [Kate, notepad++].

• Aprender a utilizar

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

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

clases, variables y métodos,

operadores, expresiones

resalte las palabras con otro color

Primera Práctica

Descripción General

Que el estudiante aprenda a utilizar la herramienta de análisis léxico y [JLex|JFlex]

la finalidad de implementar un editor de texto.

Objetivos Específicos

Manejar e Implementar expresiones regulares para reconocer un lenguaje de

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].

La empresa XYZ requiere la implementación de un editor de texto avanzado para

facilitar el uso y visualización de las palabras reservadas del lenguaje C# que utilizan los

empleados para la utilización del lenguaje.

Características de la solución

Para responder a las necesidades que se le plantean, se ha pensado en el

de una aplicación en lenguaje JAVA que permita reconocer definición de

clases, variables y métodos, palabras reservadas, comentarios, modificadores

expresiones y de métodos en lenguaje C#. Con el único objetivo de

con otro color de acuerdo a la especificación.

Universidad de San Carlos de GuatemalaFacultad de Ingeniería Escuela de Ciencias y Sistemas Organización de Lenguajes y Compiladores 2do. semestre del 2010

[JLex|JFlex] con

Manejar e Implementar expresiones regulares para reconocer un lenguaje de

reservadas y

La empresa XYZ requiere la implementación de un editor de texto avanzado para

que utilizan los

Para responder a las necesidades que se le plantean, se ha pensado en el

definición de

modificadores,

Con el único objetivo de que

Universidad de San Carlos de Guatemala

Organización de Lenguajes y Compiladores 1

Page 2: Practica1_Compiladores1

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#.

Se deben de mostrar de manera funcional y agradable al usuario errores: léxicos,

sintácticos y semánticos. Además la aplicación debe ser capaz de implementar el

manejo y recuperación de errores.

2.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.

Archivo Ayuda

Nuevo Manual de Usuario

Abrir Manual Técnico

Guardar Temas de Ayuda

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 Abrir: Permite abrir un programa en c# para poder seguir editándolo

o Guardar: Permite guardar el programa en c# que está siendo editado.

o Guardar Como: Permite guardar el programa en c# con un nombre nuevo.

o Errores Muestra los errores al cargar el programa de c#

o Salir: Con esta opción se cerrara la aplicación.

• 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.

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 Temas de Ayuda: Permite mostrar información de la persona que ha

creado la aplicación.

2.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

*/

}

Page 3: Practica1_Compiladores1

El lenguaje a desarrollar será sensible al texto por lo que deberá de hacer distinción entre

mayúsculas y minúsculas. Además se aceptaran comentarios en cualquier parte del archivo

como los siguientes

En resumen se definen las variables que podrán ser una lista de ellas con un tipo asociado

y una asignación opcional, además de que se definen una lista que incluirá constructores y

métodos a utilizar, en los cuales se pueden incluir sentencias de ciclos, condicionales,

declaraciones de variables con asignación y asignaciones sin declaración de variables.

El archivo de entrada que deberá de reconocer los componentes siguientes del lenguaje

c#.

• Palabras reservadas

o Tipos (int, doublé, String)

o Sentencias (if, switch, for, while, do while, repeat)

o Sentencias de impresión (ConsoleWrite.line)

o Tipos devueltos(int, doublé, String)

o Otras palabras (this, return, break)

• Operadores

o Aritméticos (+,-,*,/,%)

o Relacionales (==,!=,<,<=,>,>=)

o Lógicos(&&,||,!)

o Asignación(=)

• Comentarios

o de una línea (//)

o de varias líneas(/**** */)

• Identificadores (Nombres de Clases, Variables y Métodos)

• Contantes (enteros, decimales, cadenas)

// Comentario de una línea

/* Comentario

De varias

Líneas*/

Page 4: Practica1_Compiladores1

2.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. Resaltándolos con diferentes

colores de acuerdo a la siguiente tabla.

Componentes de C# Color

Palabras reservadas Azul

Operadores Anaranjado

Comentarios Gris

Identificadores Rojo

Constantes Verde

2.4 Manejo de errores

La aplicación deberá reportar los errores léxicos que encuentre al momento de ingresar un nuevo archivo. En el reporte de errores se debe indicar la posición donde ocurrió (fila columna) y qué provoco el error. Se evaluará la respuesta de la aplicación a los errores, esto quiere decir que se subrayaran los errores encontrados con algún color que los resalte.

Error Descripción Columna Fila

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ó, la • gramática es distinta al archivo que utilice para la herramienta que • genera el analizador) • Manual de Usuario • Archivos de Prueba

Page 5: Practica1_Compiladores1

3. Notas Importantes

• NO SE DARÁ PRORROGA, por ningún motivo. • Los comentarios de múltiples líneas deberá realizarse con estados en

[JLex|JFlex]. • La práctica se deberá realizar en forma individual. • La práctica deberá implementarse en lenguaje JAVA, en caso contrario

este no será calificado. • 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.

• 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.

• Es obligatorio que la aplicación tenga un instalador el cual se deberá realizar con una aplicación especial para hacer instaladores profesionales (Inno, NSIS, etc.), por lo que no se permitirá archivos “.bat”.

• La calificación de la práctica será personal y durará como mínimo 15 minutos, en un horario que posteriormente será establecido. 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.

• Todos los errores generados por la aplicación deberán ser de manera amigable al usuario o de lo contrario no serán calificados.

• No se aceptará la ejecución de procesos en consola u otro tipo de programa, 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.

• Se debe tomar en cuenta que la funcionalidad es importante para la calificación del mismo.

CD deberá contener: El instalador de la aplicación el cual deberá estar incluida la documentación, archivos de prueba y código fuente de la aplicación. No deberá entregar la documentación impresa, solamente la hoja de calificación y la hoja de elementos elaborados de la aplicación. En sobre con los datos completos.

Fecha de entrega: sábado 21 de agosto de 2010.

Page 6: Practica1_Compiladores1

4. Anexo

A continuación se muestra un archivo de entrada y su correspondiente salida como

ejemplo.

Class Objeto{

//definición de variables

int a;

double b;

String c;

Objeto(){

this.a=0;

this.b=0.0;

this.c=””;

}

Objeto(int a,double b,String c){

this.a=a;

this.b=b;

this.c=c;

}

void metodoIf(){

if(a==b){

write.line(a);

}

else if(a!=b) {

write.line(b);

}

}

String metodofor(){

for(int c=0;c<10;c++){

c=c+”1”;

}

return c;

}

}