3. QUE ES UN COMPILADOR
Un compilador es un pequeño programa informático, que se
encarga de traducir (compilar) el código fuente de cualquier
aplicación que se esté desarrollando. En pocas palabras, es un
software que se encarga de traducir el programa hecho en
lenguaje de programación, a un lenguaje de máquina que pueda
ser comprendido por el equipo y pueda ser procesado o ejecutado
por este.
5. TIPOS DE COMPILADORES
Compiladores Cruzados
Compiladores optimizadores
Compiladores de una sola pasada
Compiladores de varias pasadas
Compiladores JIT
6. CODIGO FUENTE
El código fuente de un programa está escrito por un
programador en algún lenguaje de programación, pero en este
primer estado no es directamente ejecutable por la
computadora, sino que debe ser traducido a otro lenguaje (el
lenguaje máquina o código objeto) que sí pueda ser ejecutado por
el hardware de la computadora. Para esta traducción se usan los
llamados compiladores, ensambladores, intérpretes y otros
sistemas de traducción.
7. CODIGO OBJETO
En programación, se llama código objeto al código que resulta de
la compilación del código fuente.
Consiste en lenguaje máquina o bytecode y se distribuye en
varios archivos que corresponden a cada código fuente
compilado. Para obtener un programa ejecutable se han de
enlazar todos los archivos de código objeto con un programa
llamado enlazador (linker).
8. CODIGO EJECUTABLE
En informática, un ejecutable o archivo ejecutable, es
tradicionalmente un o como se le conoce mayormente archivo
binario cuyo contenido se interpreta por el ordenador como un
programa.
Generalmente, contiene instrucciones en código máquina de un
procesador en concreto, pero también puede contener bytecode
que requiera un intérprete para ejecutarlo. Además suele
contener llamadas a funciones específicas de un sistema
operativo (llamadas al sistema).
9.
10. ENLAZADOR
Un enlazador o linker es un programa que toma los objetos
generados en los primeros pasos del proceso de compilación, la
información de todos los recursos necesarios (biblioteca), quita
aquellos recursos que no necesita, y enlaza el código objeto con
su(s) biblioteca(s) con lo que finalmente produce un fichero
ejecutable o una biblioteca. En el caso de los programas
enlazados dinámicamente, el enlace entre el programa ejecutable
y las bibliotecas se realiza en tiempo de carga o ejecución del
programa.
11. USOS
El depurador lanza el programa a depurar. Éste se ejecuta
normalmente hasta que el depurador detiene su ejecución,
permitiendo al usuario examinar la situación.
El depurador permite detener el programa en:
Un punto determinado mediante un punto de ruptura.
Un punto determinado bajo ciertas condiciones mediante un
punto de ruptura condicional.
Un momento determinado cuando se cumplan ciertas
condiciones.
Un momento determinado a petición del usuario.
Durante esa interrupción, el usuario puede:
Examinar y modificar la memoria y las variables del programa.
Examinar el contenido de los registros del procesador.
12. DEPURADOR
Un depurador es un programa usado para probar y depurar (eliminar
los errores) de otros programas (el programa "objeto"). El código a
ser examinado puede alternativamente estar corriendo en un
simulador de conjunto de instrucciones (ISS), una técnica que
permite gran potencia en su capacidad de detenerse cuando son
encontradas condiciones específicas pero será típicamente algo más
lento que ejecutando el código directamente en el apropiado (o el
mismo) procesador. Algunas depuradores ofrecen dos modos de
operación - la simulación parcial o completa, para limitar este
impacto.
13. Examinar la pila de llamadas que han desembocado en la situación
actual.
Cambiar el punto de ejecución, de manera que el programa
continúe su ejecución en un punto diferente al punto en el que fue
detenido.
Ejecutar instrucción a instrucción.
Ejecutar partes determinadas del código, como el interior de una
función, o el resto de código antes de salir de una función.
El depurador depende de la arquitectura y sistema en el que se
ejecute, por lo que sus funcionalidades cambian de un sistema a
otro. Aquí se han mostrado las más comunes.
14. LENGUAJE ENSAMBLADOR
El lenguaje ensamblador hard-coded es típicamente usado en el
ROM de arranque del sistema (BIOS en los sistemas compatible
IBM PC). Este código de bajo nivel es usado, entre otras cosas,
para inicializar y probar el hardware del sistema antes de cargar
el sistema operativo, y está almacenado en el ROM. Una vez que
ha tomado lugar un cierto nivel de inicialización del hardware, la
ejecución se transfiere a otro código, típicamente escrito en
lenguajes de alto nivel; pero el código corriendo inmediatamente
después de que es aplicada la energía usualmente está escrito en
lenguaje ensamblador. Lo mismo es cierto para los boot loaders.
15. Muchos compiladores traducen lenguajes de alto nivel a lenguaje
ensamblador primero, antes de la compilación completa,
permitiendo que el código en ensamblador sea visto para
propósitos de depuración y optimización. Lenguajes de relativo
bajo nivel, como C, con frecuencia proveen sintaxis especial para
empotrar lenguaje ensamblador en cada plataforma de hardware.
El código portable del sistema entonces puede usar estos
componentes específicos a un procesador a través de una
interface uniforme.