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
)
[
]
,
.
;
:
..

Documentos relacionados