Compile:Condorboard-Stable

=Compilación Sofware=

Un compilador es un conjunto de programas que transforma codigo fuente escrito en algún lenguaje de programación(assembly, c, c++) en otro lenguaje de programación de menor nivel; en la mayoria de los casos lenguaje de maquina(binario). El objetivo es crear un archivo ejecutable para correr sobre la plataforma de destino. Cuando el programa esta destinado a un procesador diferente al del computador en el cual se ejecuta el compilador, a ese compilador se le conoce como compilador-cruzado (cross-compiler).



Etapas de Compilación

 * 1) Preprocesado: En esta etapa se interpretan las directivas dadas al preprocesador. (i.e.: Las variables inicializadas con #define son sustituídas en el código por su valor en todos los lugares donde aparece su nombre.)
 * 2) Compilación: La compilación transforma el código fuente preprocesado en código objeto. Un archivo binario en lenguaje de máquina. Este archivo unicamente contiene las funciones definidas dentro del codigo fuente original. Funciones definidas en librerias (i.e printf, malloc), o funciones definidas en otros archivos fuentes son adicionadas al codigo de maquina en la siguiente etapa.
 * 3) Enlazado (Linking): El linker enlaza el archivo objeto creado en la compilación con las definiciones de las funciones faltantes, ubicadas en otros codigos objeto y/o en las librerias estandar del sistema. Como resultado se obtiene un archivo binario con todo el código necesario para su ejecución.

=Sintesis Hardware(HDL)=

Para los programas de descripción de hardware el "compilador" transforma el archivo fuente escrito en HDL (Verilog, VHDL) en archivos con la descripción de las interconexiones de bloques logicos en la plataforma de destino (FPGA, ASIC); esto los diferencia de los compiladores software, los cuales generan archivos binarios que contienen secuencias de instrucciones, entendidas por el uC de destino. A estos "compiladores hardware" se les llama herramientas de sintesis.