Está en la página 1de 2

I PROYECTO DE AUTOMATAS, GRAMATICAS Y LENGUAJES

TEMA: SIMULACION DE UN ANALIZADOR LEXICO


PROFESOR: ING. CARLOS ALBERTO GARCIA CASTRO

ENUNCIADO
Debe realizar una aplicación vía Web el cual validará la construcción de sentencias comúnmente usadas en los
lenguajes de programación para el desarrollo de programas utilizando un pseudocódigo. Esta aplicación en su
primera fase hará las veces de un analizador léxico en el cual debe tener implementado las siguientes
funcionalidades:
1. Identificación de las Palabras reservadas utilizadas en el pseudocódigo. Las palabras reservadas válidas
para utilizar son las siguientes: Inicio, Si, Entonces, Sino, FinSi, MQ, FinMQ, Para, FinPara, Haga, Declare,
Envia ( envía datos a pantalla ) y Recibe ( Recibe datos del teclado), Llamar, Fin y los tipos de datos:
Entero, Real, Cadena, Fecha, Logico
2. Validación de Identificadores (nombres de variables). Por medio de una expresión regular validar si el
identificador de una variable es correcto en las líneas de declaración de variables. Una línea de
declaración de variables está compuesta de la siguiente manera:
a. Declare NombreVariable TipodeDato;
b. Ejemplo:
i. Declare a1 entero;
ii. Declare x123 cadena;
iii. Declare x, y, z real;
c. Se considera un identificador válido si se cumplen estas condiciones de manera simultánea:
i. Empieza por un carácter alfabético
ii. Después del primer carácter alfabético pueden venir cero o más caracteres alfanuméricos
(letras y/o números).
iii. El único símbolo especial admitido es el carácter underscore “_”.
iv. El identificador debe tener un máximo de 15 caracteres.
d. Para lograr lo anterior debe implementar una expresión regular, considerando el identificador
inválido si no cumple alguna de las anteriores condiciones.
e. Ejemplo de identificadores válidos:
i. a b1
ii. x1y x_3
iii. x1234567890 a123yx0
f. Ejemplo de Identificadores inválidos:
i. 1x ( empieza por numero ) x&1 ( tiene el carácter & )
ii. x1234567890123456 ( sobrepasa el límite establecido de 15 caracteres )
iii. a 1 ( tiene un espacio en blanco )
3. Dado un tipo de dato (Entero, Real, Cadena, Fecha, Logico), mostrar por pantalla, las variables definidas
por este tipo de datos
4. Identificar las líneas que tengan un comentario. La aplicación debe presentar ya sea mediante un botón,
o un menú u otro objeto, que al hacer clic en él, muestre las líneas que sean comentario. También podría
señalar de color gris aquellas líneas que en el pseudocódigo anterior sean de comentario. En el
pseudocódigo anterior, la aplicación mostrará las siguientes líneas de comentario:
# a = a +1

A continuación, y a manera de ejemplo se muestra un pseudocódigo de lo que aceptaría la aplicación al


interactuar con el usuario:
Inicio
declare a,1b entero;
declare x real;
declare i real;
recibe(x);
a = 5;
b = 2;
si x >= (b + 1c) entonces
# a = a +1
envia ( “HOLA MUNDO”);
sino
envia ( “ESTO ES UNA PRUEBA”);
finsi;
Fin

OBSERVACIONES:
Los estudiantes podrán formar grupos máximo de 3 personas y elegir el lenguaje de programación de su
preferencia. Este proyecto será sustentado en el salón de clases; cada grupo debe asegurarse que el programa
funcione adecuadamente y de instalar las librerías necesarias para su correcta ejecución. También se debe
entregar de un informe técnico impreso que debe contener lo siguiente:
1. Marco Teórico del análisis léxico
2. Justificación de la elección del lenguaje de programación
3. Objetivo de las principales estructuras de datos utilizada para el analizador léxico
4. Objetivo de los principales procedimientos y funciones que se utilizaron en el analizador léxico
5. Descripción del empleo de la expresión regular y como se validan los identificadores
6. Si tuvo dificultades, cómo las resolvió.

Para lo anterior, el informe debe tener entre 5 y 8 hojas de contenido. El listado del programa fuente se enviará
por e-mail a: carlos_garcia27@hotmail.com

El plazo de entrega del proyecto es el martes 12 de marzo, única fecha de entrega. Grupo que no presente la
aplicación tendrá una calificación de 0.0. Grupo que copie un programa de otro tendrán ambos grupos una
calificación de 0.0

También podría gustarte