Sunteți pe pagina 1din 2

Etapas de compilacin

Como usuarios del compilador GNUPascal,cadavezquelancemosunacompilacinseiniciaunprocesodevariasetapas(slouna eslacompilacin)y,mediantedirectivas,podemosdetenerloencualquiermomento.


(ejercicio 01Algor\programas\etapas.pas)

1. Preprocesado .Sonoperacionesdeinclusin,bsquedaysustitucindetextos,borradodeotros... Soncomolasrealizadasporunprocesadordetextos.(directiva-E) gpc --extended-pascal -E etapas.pas 2. Compilacin a lenguaje ensamblador . Da un archivo en ensamblador con extensin s. (Usa la directiva-S). gpc --extended-pascal -S etapas.pas 3. Compilacin a cdigo mquina . Genera cdigo mquina no ejecutable que pone en un archivo con extensino.(directiva-c). gpc --extended-pascal -c etapas.pas 4. Enlace conlasbibliotecasdisponiblesencdigogmquinaparagenerarelejecutable.
NOTA. Es posible que algunos compiladores no incluyan todas las etapas, tengan alguna ms o resuman varias etapas en una sola. NOTA. La compilacin a ensamblador en lugar de ir directamente a cdigo mquina permite enlazar cdigo compilado cuyo fuente fue escrito en distintos lenguajes: C, Ada, Pascal...

Portantola orden de compilacin habitual


directiva entrada gpc --extended-pascal etapas.pas salida {a.exe}

equivaleaestasecuenciaderdenes
gpc gpc gpc gpc +---- directivas ----+ --extended-pascal -E --extended-pascal -S --extended-pascal -c --extended-pascal entrada salida etapas.pas > etapas.i etapas.pas {etapas.s} etapas.s {etapas.o} etapas.o {a.exe } {preprocesado} {ensamblador } {objeto } {ejecutable }

Tambinsepuedelanzarestaordenyseobtendrnlosarchivosanteriores
gpc --extended-pascal -save-temps etapas.pas

Ladirectiva --extended-pascal lepideagpcquecompilesegnPascalISO10206.

Etapa de compilacin: subetapas


Vamosahablardela etapa de compilacin dela figuraanterior. Elconstructordecompiladoressabequeuncompiladorsueletenerlassiguientesetapas:

Anlisis lxico .Consisteenagruparcaracteresparaformarlasunidadesqueyatienen significadoporsimismas(tokens).


NOTA. Token es la moneda de menor valor. Nosotros diramos cntimo.

Anlisis sintctico .Seanalizanlassentencias,queestncompuestasdetokens,de acuerdoconlasintaxisdellenguaje. Anlisis semntico y Generador de cdigo intermedio son dos etapas que se representanjuntasporquelageneracindecdigointermedioutilizaelmismorboldel anlisissemntico. Optimizacin del cdigo .Esunaseccinoptativaperomuydifundidaydemandada entreloscompiladoresprofesionales.Porello,Losconstructoresdecompiladoresgastan muchodineroenella.Tratadeoptimizarelcdigoentamaoy/ovelocidad. Generador de cdigo final . Se encarga de generar el cdigo en el lenguaje objeto del compilador.
NOTA. Los objetos del programa pueden ser simples (enteros, reales) o complejos (matrices, registros, funciones, procedimientos). Tienen un identificador asociado, una posicin en memoria, un valor y unos atributos. El valor es el almacenado en la zona de memoria que ocupa el objeto y los atributos determinan los valores que puede tomar el objeto, las operaciones a las que se puede someter...

Las tablas de smbolos tienenalmenoslasiguienteinformacinrespectodecadaobjetodelprograma. Sunombreo denotador, Los atributos (elmsimportanteeseltipo), Su posicin en memoria olaformadeencontrarla...

http://arca.tic.udc.es/y/01Algor/08compilar.htm

El gestor de errores tratadeoptimizarlascompilacionesdeunprograma.Elgestor Divide elcdigopor tramos delimitadospormarcasdebloque( begin y end enPascal). Sienun tramo decdigoencuentra demasiados errores (entraen modo panic )loignoraypasaacompilarelsiguientetramo. Enconsecuencia,cuandoelcompiladornosindicaloserroresquevetenemosqueserconscientesdequesonconsecuenciadelas partescompiladasydelasnocompiladas. Mododecorregirloserrores No hayque asustarse !

Seguramentenoaparecentodoslos errores que hay Esposiblequeaparezcan errores que no existen (elcompiladorestbien) Corregir los errores de menor a mayor nmero de lnea .Estopuede Hacer que desaparezcan erroresque'vea'elcompiladorenlneasposteriores Hacer que aparezcan otros queantesnohabaconsideradoporqueentrenelmodopanic

Pregunta de examen
Cuandoselanzalacompilacinenpascalcongpc,cuantascompilacionesserealizanenrealidad? A. 1 B. 2 C. 3

http://arca.tic.udc.es/y/01Algor/08compilar.htm

S-ar putea să vă placă și