19.04.2015 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!