Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia ANTLR
Guia ANTLR
Gua 5
Facultad:
Ingeniera
Escuela:
Computacin
Asignatura: Compiladores
de generar
travs
de
el
la
Objetivos Especficos
Material y Equipo
Gua de Laboratorio N 5.
Parser Generator http://www.bumblebeesoftware.com/.
Libro Construccin de compiladores de Kenneth
Louden.
C.
Introduccin Terica
YACC: Generacin de analizadores sintcticos LR
Gua 3
Compiladores. Gua 5
Compiladores. Gua 5 3
La
tercera
seccin,
de
rutinas
auxiliares,
contiene
declaraciones de procedimientos y funciones que de otra
manera pueden no estar disponibles a travs de archivos
#include y que son necesarias para completar el analizador
sintctico y/o el compilador.
Esta seccin puede estar vaca, y si este es el caso se puede
omitir el segundo meta smbolo de porcentaje doble del
archivo de especificacin. De esta manera, un archivo de
especificacin mnimo de YACC consistira solo de %% seguidos
por reglas gramaticales y acciones (las acciones tambin se
pueden omitir si solo tratamos de analizar la gramtica).
YACC tambin permite insertar comentarios al estilo de C en
el archivo de especificacin en cualquier punto donde no
interfieran con el formato bsico.La primera seccin que
incluye las directivas #include se encierra entre los
smbolos %{ y %} ntese que los signos de porcentaje se
anteponen a las llaves.
Para definir un token se realiza as: %token nombreToken
Si se desea inicializar como una variable deber colocarse el
valor numrico a continuacin del nombre del token.
En la segunda seccin, las reglas gramaticales se colocan
as: expresin: expresin trminos
Cuando se reconoce una regla gramatical, cada smbolo en la
regla posee un valor, que se supone es un entero a menos que
sea cambiado por el programador.
Esos valores se conservan en una pila de valor mediante Yacc,
la cual se mantiene paralela a la pila de anlisis
sintctico. Se puede hacer referencia a cada valor de smbolo
en la pila utilizando una pseudo variable que comience con el
signo $. $$ representa el valor del no terminal que se
acaba de reconocer, es decir, el smbolo en el lado izquierdo
de la regla gramatical. Las pseudo variables $1, $2, $3 y as
sucesivamente, representan los valores de cada smbolo en
sucesin en el lado derecho de la regla gramatical.
Procedimiento
Yacc no es directamente un analizador sino un generador de
Gua 3
analizadores.
A partir de un fichero fuente en yacc, se
genera un fichero fuente en C que contiene el analizador
sintctico.
Sin embargo, un analizador sintctico de yacc no
Gua 4
fa
Compiladores. Gua 5
Compiladores. Gua 5 5
| lines '\n'
| /* e */
| error '\n'
last line:"); yyerrok(); }
;
expr : expr '+' term
| expr '-' term
| term
;
{ printf("%g\n", $2);
yyerror("reenter
{ $$ = $1 + $3; }
{ $$ = $1 - $3; }
Compiladores. Gua 5
{ $$ = $2; }
{
$$
=
$2;
{ $$ = -$2; }
%%
/*Fin de la seccion de reglas y adicion de rutinas auxiliares
en c*/
int main(void)
{
yyparse();
/*Invocacion de la funcion del analizador sintactico*/
return 0;
}
/*Definicin del analizador lxico*/
int yylex(void)
{
int c;
while ((c = getchar()) == ' ');
/*Elimina los espacios en blanco*/
if (c == '.' || isdigit(c)) {
/*El character . indica que se termino el programa*/
ungetc(c, stdin);
scanf("%lf", &yylval);
return NUMBER;
}
return c;
}
Tabla 2
Ahora procederemos a guardar nuestro archivo para generar el
analizador sintctico.
Compiladores. Gua 5 7
Compiladores. Gua 5
Compiladores. Gua 5 9
Figura 7:
ubicacin
luego el
escogemos
Microsoft
10 Compiladores. Gua 5
Compiladores. Gua 5 11
como
12 Compiladores. Gua 5
Compiladores. Gua 5 13
Anlisis de resultados
Construya
un
analizador
sintctico
ascendente
con
la
herramienta Parser Generator para la gramtica del lenguaje
Micro C.
Investigacin complementaria
Responda:
Que es un analizador semntico
Cul es su funcin principal
Algoritmo para desarrollarlo
Cul es su dependencia con el analizador sintctico
Qu es una tabla de smbolos
Cules son los tipos de comprobaciones realizadas por un
analizador semntico.
Que es un rbol de sintaxis abstracta.
Que es un AST decorado.
Bibliografa
14 Compiladores. Gua 5
Hoja de cotejo:
Docente:
5
1
Mquina No:
Mquina No:
Mquina No:
GL:
Alumno:
Docente:
GL:
Docente:
GL:
Fecha:
EVALUACION
%
CONOCIMIENTO
Del 20
al 30%
APLICACIN
DEL
CONOCIMIENTO
Del 40%
al 60%
1-4
5-7
8-10
Conocimie
nto
deficient
e de los
fundament
os
tericos
Conocimiento
y explicacin
incompleta de
los
fundamentos
tericos
Conocimiento
completo y
explicacin
clara de los
fundamentos
tericos
No tiene
actitud
proactiva
.
Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la gua.
Tiene actitud
proactiva y sus
propuestas son
concretas.
ACTITUD
Del 15%
al 30%
TOTAL
100%
Nota