compilador 22 (1)

17

Upload: still01

Post on 09-Jul-2015

300 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Compilador 22 (1)
Page 2: Compilador 22 (1)
Page 3: Compilador 22 (1)

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.

Page 4: Compilador 22 (1)

PARTES DE UN COMPILADOR

Page 5: Compilador 22 (1)

TIPOS DE COMPILADORES

Compiladores Cruzados

Compiladores optimizadores

Compiladores de una sola pasada

Compiladores de varias pasadas

Compiladores JIT

Page 6: Compilador 22 (1)

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.

Page 7: Compilador 22 (1)

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).

Page 8: Compilador 22 (1)

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).

Page 9: Compilador 22 (1)
Page 10: Compilador 22 (1)

ENLAZADOR Un enlazador o linker es un programa que toma los objetosgenerados en los primeros pasos del proceso de compilación, lainformación de todos los recursos necesarios (biblioteca), quitaaquellos recursos que no necesita, y enlaza el código objeto consu(s) biblioteca(s) con lo que finalmente produce un ficheroejecutable o una biblioteca. En el caso de los programasenlazados dinámicamente, el enlace entre el programa ejecutabley las bibliotecas se realiza en tiempo de carga o ejecución delprograma.

Page 11: Compilador 22 (1)

USOS

El depurador lanza el programa a depurar. Éste se ejecutanormalmente 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 unpunto de ruptura condicional.

Un momento determinado cuando se cumplan ciertascondiciones.

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.

Page 12: Compilador 22 (1)

DEPURADOR

Un depurador es un programa usado para probar y depurar (eliminarlos errores) de otros programas (el programa "objeto"). El código aser examinado puede alternativamente estar corriendo en unsimulador de conjunto de instrucciones (ISS), una técnica quepermite gran potencia en su capacidad de detenerse cuando sonencontradas condiciones específicas pero será típicamente algo máslento que ejecutando el código directamente en el apropiado (o elmismo) procesador. Algunas depuradores ofrecen dos modos deoperación - la simulación parcial o completa, para limitar esteimpacto.

Page 13: Compilador 22 (1)

Examinar la pila de llamadas que han desembocado en la situaciónactual.

Cambiar el punto de ejecución, de manera que el programacontinúe su ejecución en un punto diferente al punto en el que fuedetenido.

Ejecutar instrucción a instrucción.

Ejecutar partes determinadas del código, como el interior de unafunció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 seejecute, por lo que sus funcionalidades cambian de un sistema aotro. Aquí se han mostrado las más comunes.

Page 14: Compilador 22 (1)

El lenguaje ensamblador hard-coded es típicamente usado en elROM de arranque del sistema (BIOS en los sistemas compatibleIBM PC). Este código de bajo nivel es usado, entre otras cosas,para inicializar y probar el hardware del sistema antes de cargarel sistema operativo, y está almacenado en el ROM. Una vez queha tomado lugar un cierto nivel de inicialización del hardware, laejecución se transfiere a otro código, típicamente escrito enlenguajes de alto nivel; pero el código corriendo inmediatamentedespués de que es aplicada la energía usualmente está escrito enlenguaje ensamblador. Lo mismo es cierto para los boot loaders.

LENGUAJE ENSAMBLADOR

Page 15: Compilador 22 (1)

Muchos compiladores traducen lenguajes de alto nivel a lenguajeensamblador primero, antes de la compilación completa,permitiendo que el código en ensamblador sea visto parapropósitos de depuración y optimización. Lenguajes de relativobajo nivel, como C, con frecuencia proveen sintaxis especial paraempotrar lenguaje ensamblador en cada plataforma de hardware.El código portable del sistema entonces puede usar estoscomponentes específicos a un procesador a través de unainterface uniforme.

Page 16: Compilador 22 (1)
Page 17: Compilador 22 (1)