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.
a. 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.
b. Ejemplo de identificadores válidos:
i. a b1
ii. x1y x_3
iii. x1234567890 a123yx0
c. 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. Validación de Declaración de Variables. Una línea de declaración de variables es usada para definir el
tipo de variable y está compuesta de la siguiente manera:
a. Declare IdentificadorVariable TipodeDato;
b. Ejemplo:
i. Declare a1 entero;
ii. Declare x123 cadena;
iii. Declare x, y, z real;
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
5. Validación de una sentencia de asignación: Una sentencia de asignación está compuesta por un
identificador de variable, el signo “igual “ ( = ) y otro identificador de variable o un numero terminando
en “;”. Debe utilizar una expresión regular para validar la sintaxis corre
a = 5;
6. Dado un tipo de dato (Entero, Real, Cadena, Fecha, Logico), mostrar por pantalla, las variables definidas
por este tipo de datos
Un ejemplo de un pseudocódigo a trabajar sería el siguiente:
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 las expresiones regulares utilizadas en este proyecto
6. Si tuvo dificultades, cómo las resolvió.

El plazo de entrega del proyecto es el lunes 9 de marzo y debe tener un informe entre 5 y 8 hojas de contenido
subiéndolo a la plataforma del Ferrum. 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