Fundamentos de informatica
Fundamentos de Informática
Tema 3. El proceso de compilación, del código fuente al código máquina
TEMA 3. EL PROCESO DE COMPILACIÓN,
DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA
Programa: Algoritmo (secuencia no ambigua, finita y ordenada de
instrucciones para la resolución de un determinado problema) traducido a un
lenguaje de programación, de modo que unordenador es capaz de ejecutarlo.
Programación: Elaboración de un programa de manera que éste sea:
− Correcto
Un programa será correcto si hace lo que debe hacer, de
modo que se deben especificar de manera muy clara cuáles son los
datos sobre los que se trabajarán y lo que se debe hacer con ellos.
Todo debe ser documentado y probado antes de desarrollarlo.
− Eficiente
Debe consumir la menorcantidad de recursos (tiempo y/o
memoria) posible.
− Claro
Es muy importante la claridad y legibilidad de todo programa,
ya que facilitará al máximo la tarea de mantenimiento posterior del
software.
− Modular
Los programas suelen subdividirse en subprogramas
(módulos), para reducir la complejidad de aquella parte que se está
implementando y facilitar la reutilización de código.
Para laelaboración de un programa hay que distinguir entre las siguientes
dos fases:
− Fase de compilación y linkado (link, montado o enlace)
− Fase de ejecución de un programa
Página 1 de 5
Ingeniería Técnica Industrial
Fundamentos de Informática
Tema 3. El proceso de compilación, del código fuente al código máquina
3.1 Fase de compilación y linkado (link, montado o enlace)
Un programaescrito en un lenguaje de alto nivel, no puede ser ejecutado
directamente por un ordenador, sino que debe ser traducido a lenguaje máquina.
Las etapas por las que debe pasar un programa escrito en un lenguaje de
programación, hasta poder ser ejecutable son:
(nombre.c)
Con
errores
Sin errores
COMPILADOR
Librerías
Programa Objeto
(nombre.o)
Sin errores
ENLAZADORDEPURACIÓN del programa si se producen errores en ejecución
Programa Fuente
Programa ejecutable
(nombre.exe)
Figura 1. Proceso de transformación de un programa fuente a
un programa ejecutable
Programa fuente: Programa escrito
en un lenguaje de alto nivel (texto
ordinario que contiene las sentencias del
programa
en
un
lenguaje
de
programación). Necesita ser traducido a
código máquinapara poder ser
ejecutado.
Compilador: Programa encargado
de traducir los programas fuentes
escritos en un lenguaje de alto nivel a
lenguaje máquina y de comprobar que
las llamadas a las funciones de
librería se realizan correctamente.
Programa (o código) objeto: Es el
programa fuente traducido (por el
compilador) a código máquina. Aún no
es directamente ejecutable.
Programa Ejecutable:Traducción
completa a código máquina, realizada
por el enlazador, del programa fuente
y que ya es directamente ejecutable.
Linker (montador o enlazador): Es el programa encargado de insertar al
programa objeto el código máquina de las funciones de las librerías (archivos
de biblioteca) usadas en el programa y realizar el proceso de montaje, que
producirá un programa ejecutable .exe. Laslibrerias son una colección de
código (funciones) ya programado y traducido a código máquina, listo para
utilizar en un programa y que facilita la labor del programador.
Página 2 de 5
Ingeniería Técnica Industrial
Fundamentos de Informática
Tema 3. El proceso de compilación, del código fuente al código máquina
Como cada lenguaje de programación tiene unas reglas especiales (sintaxis)debe existir un compilador específico para cada lenguaje de programación.
Si el programa fuente es sintácticamente correcto, el compilador generará el
código objeto, en caso contrario mostrará una lista con los errores encontrados,
no generándose ningún programa objeto, para que procedamos a su depuración
Los compiladores emiten mensajes de error o de advertencia durante las
fases de...
Regístrate para leer el documento completo.