20.06.2013 Views

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Las tres primeras fases conforman la ‘porción <strong>de</strong>l análisis d<strong>en</strong>tro <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> análisis y sintesis.<br />

Las activida<strong>de</strong>s <strong>de</strong> administración <strong>de</strong> la tabla <strong>de</strong> símbolos y manejo <strong>de</strong> errores, como se ve <strong>en</strong> ta figura<br />

1, interactúan con todas las otras fases. Las últimas tres etapas conforman la etapa <strong>de</strong> síntesis <strong>de</strong>l<br />

compilador.<br />

Respecto a nuestro compilador cabe aclarar que, <strong>en</strong>’ este mo<strong>de</strong>lo, se llega hasta la fase <strong>de</strong><br />

g<strong>en</strong>eración <strong>de</strong> código intermedio, que produce como s<strong>al</strong>ida no un programa escrito <strong>en</strong>, l<strong>en</strong>guaje <strong>de</strong><br />

máquina o <strong>en</strong> l<strong>en</strong>guaje assembler, sino una repres<strong>en</strong>tación intermedia <strong>de</strong>l programa fu<strong>en</strong>te. Esta<br />

repres<strong>en</strong>tación intermedia es interpretada por un programa llamado el Ejecutor, implem<strong>en</strong>tado <strong>en</strong> ta<br />

tercera etapa <strong>de</strong> <strong>de</strong>sarrollo.<br />

Se com<strong>en</strong>zó con la construcción <strong>de</strong>l traductor <strong>de</strong> l<strong>en</strong>guaje FP a código intermedio,<br />

implem<strong>en</strong>tándose para esto el an<strong>al</strong>izador lexicográfico, luego el an<strong>al</strong>izador sintáctico, las. rutinas <strong>de</strong><br />

recuperación <strong>de</strong> errores y, por último, el g<strong>en</strong>erador <strong>de</strong> código intermedio.<br />

Dado que no se trata <strong>de</strong> un compilador propiam<strong>en</strong>te dicho ya que no g<strong>en</strong>era código. objeto, 0 <strong>de</strong><br />

máquina sino código intermedio(Aho et <strong>al</strong> [1979][1987]), la tercera etapa correspondió a la construcción<br />

<strong>de</strong> un intérprete para ese código intermedio. En esta tercera etapa, se construyó, a<strong>de</strong>más,, la interfaz<br />

a<strong>de</strong>cuada para el ingreso <strong>de</strong> los datos <strong>de</strong> <strong>en</strong>trada a un programa FP.<br />

En la última etapa, se <strong>de</strong>sarrolló un sistema <strong>de</strong> ayuda <strong>en</strong> linea con: hipertextos, creada usando<br />

herrami<strong>en</strong>tas provistas por Borland para este fin que permit<strong>en</strong> g<strong>en</strong>erar archivos <strong>de</strong>l tipo (archivos<br />

<strong>de</strong> ayuda <strong>de</strong> Windows).<br />

2.2.1. El Traductor<br />

El traductor <strong>de</strong>l l<strong>en</strong>guaje FP implem<strong>en</strong>tado es <strong>de</strong> una pasada (Aho et <strong>al</strong> [1979][1987]), construido<br />

sobre la base <strong>de</strong> un an<strong>al</strong>izador sintáctico <strong>de</strong>sc<strong>en</strong>d<strong>en</strong>te recursivo (Aho et <strong>al</strong> [1979][1987]) que interactúa,<br />

a medida que avanza el análisis sintáctico, con el an<strong>al</strong>izador lexicográfico - <strong>en</strong>cargado <strong>de</strong> aislar Y<br />

<strong>de</strong>volver <strong>al</strong> an<strong>al</strong>izador sintáctico las unida<strong>de</strong>s sintácticas pres<strong>en</strong>tes <strong>en</strong> el programa fu<strong>en</strong>te - y Con el<br />

g<strong>en</strong>erador <strong>de</strong> código intermedio, mi<strong>en</strong>tras no se hayan <strong>de</strong>tectado errores. El administrador <strong>de</strong> ‘errores,<br />

pres<strong>en</strong>te <strong>en</strong> las tres tareas anteriores, se <strong>en</strong>carga, ante la pres<strong>en</strong>cia <strong>de</strong> un error, <strong>de</strong> informar. el tipo Y<br />

lugar <strong>de</strong>l error, y <strong>de</strong> buscar un estado estable <strong>de</strong>s<strong>de</strong> don<strong>de</strong> proseguir con el análisis sintáctico Y<br />

lexicográfico. El chequeo <strong>de</strong> tipos se re<strong>al</strong>iza <strong>en</strong> tiempo <strong>de</strong> ejecución-, mom<strong>en</strong>to <strong>en</strong> el cu<strong>al</strong> se conoce ta<br />

natur<strong>al</strong>eza <strong>de</strong> los datos <strong>de</strong> <strong>en</strong>trada a los que se les aplicará la función implem<strong>en</strong>tada por et programa.<br />

La tabla <strong>de</strong> símbolos es la <strong>en</strong>cargada <strong>de</strong> absorber aquellas características que no son tipo 2 <strong>en</strong> los<br />

l<strong>en</strong>guajes <strong>de</strong> programación, características que no pued<strong>en</strong> ser expresadas por medio <strong>de</strong> una gramatica<br />

tipo 2 o libre <strong>de</strong>l contexto. Dado que el l<strong>en</strong>guaje FP es un l<strong>en</strong>guaje aplicativo puro, libre-<strong>de</strong> variables, no<br />

posee <strong>de</strong>claraciones <strong>de</strong> estas últimas, por lo tanto el administrador <strong>de</strong> la tabla <strong>de</strong> símbolos se ocupará<br />

solam<strong>en</strong>te <strong>de</strong> mant<strong>en</strong>er los nombres <strong>de</strong> las funciones <strong>de</strong>finidas por el usuario d<strong>en</strong>tro <strong>de</strong> un programa,<br />

para así po<strong>de</strong>r controlar aquellos aspectos tipo 1 que hac<strong>en</strong> a la re<strong>de</strong>finición <strong>de</strong> funciones y <strong>al</strong> uso <strong>de</strong><br />

id<strong>en</strong>tificadores <strong>de</strong> funciones no <strong>de</strong>finidas.<br />

230

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

Saved successfully!

Ooh no, something went wrong!