Programación de Sistemas
Transcripción
Programación de Sistemas
INGENIERIA EN SISTEMAS COMPUTACIONALES MATERIA: Programación de Sistemas Trabajo de Evaluación III Unidad: "Desarrollo de un Analizador Léxico". Objetivo General: El alumno desarrollará un analizador léxico a partir de un autómata finito determinístico para el lenguaje de programación PASCUAL. Ing. Leonel Vázquez Aguirre. e-mail y msn: [email protected] (Para dudas) Fecha: 27 de Febrero de 2009 I.S.C. Leonel Vázquez Aguirre ANALIZADOR LÉXICO Número de alumnos involucrados en el proyecto: 3. Descripción del lenguaje a analizar: El lenguaje que el analizador léxico debe tomar como entrada para su análisis es un programa fuente del lenguaje de programación Pascual. Objetivo: El alumno desarrollará un analizador léxico programado en lenguaje Java que le permita reconocer los componentes léxicos de un programa fuente del lenguaje de programación Pascual especificado en la hoja Componentes del lenguaje Pascual. Actividades a realizar: 1. Elaboración del Autómata Finito Determinístico y de la tabla de transiciones basándose para ello en la definición formal de un AFD de acuerdo a los elementos que se señalan en la hoja de Componentes del Lenguaje Pascual. 2. Desarrollo del analizador léxico usando para su programación el lenguaje Java y el analizador debe incluir los siguientes puntos: • Se debe usar una estructura de doble buffer para leer el archivo fuente. • El analizador debe generar como salida dos archivos tipo texto en los cuales uno va a contener todos los tokens (lexema y gramema) de aceptación y el otro los errores que el programa fuente pueda tener. • El analizador cuando se ejecute debe pedir como entrada el nombre del archivo fuente a analizar y debe validar que el archivo realmente exista en la ruta que se le especificó. • Después de que el programa fuente haya sido analizado, el analizador debe desplegar un menú que permita ver el contenido de los dos archivos generados y la opción Salir. • El listado del programa del analizador debe estar documentado, indicando para que se utiliza cada clase del código. I.S.C. Leonel Vázquez Aguirre 3.Se tendrá que entregar: •En memoria USB para copia a Notebook Maestro: El AFD. La tabla de transiciones. Programa fuente del analizador (Documentado). Manual de cómo se utiliza el analizador. Programas del analizador léxico (fuente y .class). Archivos que contengan ejemplos de los programas fuente que se analizan. Cuadro de Evaluación: Actividades a realizar Créditos de la actividad Fecha límite de entrega 1 30 puntos 9 de Marzo de 2009 2 50 puntos 9 de Marzo de 2009 3 20 puntos 9 de Marzo de 2009 Nota: Por cada clase de retraso en la fecha de entrega, se penaliza con una disminución de 10% del valor de los créditos de la actividad. I.S.C. Leonel Vázquez Aguirre Componentes del Lenguaje Pascual 1. Identificadores:Secuencia de letras, dígitos y guiones ( _ ). Debe comenzar con una letra y no permitir más de dos guiones seguidos. No debe terminar con guión ( _ ). 2. Constantes: a) Enteras: Secuencia de dígitos. b) Reales: Secuencia de dígitos separados por un punto. Debe existir al menos un dígito a la izquierda del punto y al menos uno a la derecha de este. c) Letreros: Conjunto cualquiera de caracteres agrupados entre comillas dobles ( " ). Si se desea incluir comillas en el letrero, se deberán poner dos por cada comilla deseada dentro del letrero. 3. Comentarios: Los comentarios deberán ir entre los delimitadores /* y */ . Puede existir más de una línea de comentario, pero estos no deben generar token. 4. Palabras reservadas: Programa Arreglo Entonces Variable De Fin_sino Enteros Repetir Sino Real Hasta Cadena Para Escribir Falso Hacer Si Carácter Mientras División Booleano Leer Modulo Verdadero 5. Operadores: a) De asignación: := b) Relacionales: >, <, >=, <=, <>, = c) Aritméticos: +, -, *, / d) Lógicos: o, y, no 6. Delimitadores: { } ( I.S.C. Leonel Vázquez Aguirre ) [ ] , . ; : ..