Prototipo de intérprete de Basic a Ansi-C Basicce - Universidad de ...
Prototipo de intérprete de Basic a Ansi-C Basicce - Universidad de ...
Prototipo de intérprete de Basic a Ansi-C Basicce - Universidad de ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
- <strong>Universidad</strong> <strong>de</strong> Manizales, enero – junio / 2005<br />
Gran parte <strong>de</strong> la <strong>de</strong>tección y recuperación <strong>de</strong> errores <strong>de</strong> un compilador o<br />
interprete se centran en la fase <strong>de</strong> análisis sintáctico. El manejador esta en<br />
capacidad <strong>de</strong> <strong>de</strong>tectar errores <strong>de</strong> tipo léxico, sintáctico, semántico.<br />
Análisis Semántico<br />
Esta fase se encarga <strong>de</strong> revisar que cada agrupación o conjunto <strong>de</strong><br />
Componentes Léxicos tenga sentido; es aquí don<strong>de</strong> se reúne la información<br />
sobre los tipos para la fase posterior, en esta etapa se utiliza la estructura<br />
jerárquica <strong>de</strong> la etapa anterior y así po<strong>de</strong>r <strong>de</strong>terminar los operadores, y<br />
operandos <strong>de</strong> expresiones y preposiciones.<br />
Comprobación <strong>de</strong> Tipos: un compilador o interprete <strong>de</strong>be informar un error<br />
si se aplica un operador a un operando incompatible, por ejemplo, si se<br />
suman una variable tipo matriz y una variable <strong>de</strong> función. La Fig. 4 muestra<br />
<strong>de</strong> que forma los módulos interactúan entre sí, don<strong>de</strong> el verificador <strong>de</strong> tipos,<br />
es el filtro para la siguiente fase <strong>de</strong>l proceso <strong>de</strong> compilación.<br />
El verificador <strong>de</strong> tipos se encuentra vinculado con la tabla <strong>de</strong> símbolos,<br />
siendo esta ultima la base para observar si las variables (I<strong>de</strong>ntificadores) ya<br />
se encuentran <strong>de</strong>claradas.<br />
Ca<strong>de</strong>na <strong>de</strong><br />
componentes<br />
léxicos<br />
Analizador<br />
sintáctico<br />
Árbol<br />
sintáctico<br />
Comprobador <strong>de</strong><br />
Tipos<br />
Árbol<br />
sintáctico<br />
Generador <strong>de</strong><br />
código<br />
intermedio<br />
Representación<br />
intermedia<br />
Figura 4.<br />
Métodos<br />
El analizador Léxico fue implementado bajo las Formas Backus Naur (BNF)<br />
don<strong>de</strong> cada producción (regla) maneja la sintaxis apropiada para la<br />
gramática (léxico-sintáctico) <strong>de</strong>l lenguaje <strong>de</strong> entrada y para su<br />
implementación se utilizaron autómatas finitos no <strong>de</strong>terministas.<br />
Ejemplo:<br />
Producción para i<strong>de</strong>ntificadores y/o variables:<br />
La Fig. 5 correspon<strong>de</strong> al Autómata asociado a la regla anterior.<br />
Id<br />
L L D