Beruflich Dokumente
Kultur Dokumente
Compiladores
2015
a)
b)
c)
Ejercicio 4: Se pretende construir una calculadora que evale expresiones matemticas tales
como:
A + -(A * B + -C)
((B * C) + -A) * C + D
Se requiere construir un analizador lxico de este lenguaje. Para ello se pide:
a)
APELLIDO Y NOMBRE:__________________________________________
LU:________
Compiladores
2015
b)
Especificar el patrn lxico (expresin regular) que define cada posible token del
lenguaje.
c) Construir el DT que reconozca los componentes lxicos para este analizador.
d) Construir la tabla de transiciones para el autmata obtenido en el punto c).
b) C
#include <stdio.h>
int main()
{ int contador = 1;
do {
printf( "%d ", contador );
} while ( ++contador <= 10 );
return 0;
}
APELLIDO Y NOMBRE:__________________________________________
LU:________
Compiladores
2015
Ejercicio 8: Crear un analizador para el ejemplo del ejercicio anterior, que muestre como
salida la secuencia de tokens correspondiente, manteniendo la estructura (espacios,
tabuladores y saltos de lnea) y mostrando para los identificadores, el lexema en lugar del
token.
LU:________
Compiladores
2015
%%
{blanco}* {;}
"if" {printf(" IF ");}
"else" {printf(" ELSE ");}
"while" {printf(" WHILE ");}
"void" {printf(" VOID ");}
{ident} {printf(" IDENT ");}
{numero} {printf(" NUMERO ");}
. {printf(" %c ",yytext[0]);}
%%
Ejercicio 10: Crear un analizador basado en la especificacin del ejercicio anterior, que
muestre como salida la secuencia de tokens correspondiente, manteniendo la estructura
(espacios, tabuladores y saltos de lnea) y mostrando para los identificadores el lexema en
lugar del token.
APELLIDO Y NOMBRE:__________________________________________
LU:________