SlideShare una empresa de Scribd logo
1 de 17
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.
PARTES DE UN COMPILADOR
TIPOS DE COMPILADORES


Compiladores Cruzados
Compiladores optimizadores
Compiladores de una sola pasada
Compiladores de varias pasadas
Compiladores JIT
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.
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).
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).
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.
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.
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.
 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.
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.
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.
Compilador 22 (1)
Compilador 22 (1)

Más contenido relacionado

La actualidad más candente (18)

Sofware de programación
Sofware de programaciónSofware de programación
Sofware de programación
 
Cargadores
CargadoresCargadores
Cargadores
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Ensambladores y Compiladores
Ensambladores y CompiladoresEnsambladores y Compiladores
Ensambladores y Compiladores
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensamblador
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Lenguajes de Programación
Lenguajes de ProgramaciónLenguajes de Programación
Lenguajes de Programación
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Procesadores de lenguaje
Procesadores de lenguajeProcesadores de lenguaje
Procesadores de lenguaje
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
 
Informatik
InformatikInformatik
Informatik
 
H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 

Similar a Compilador 22 (1)

Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
dodi1997
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De Programacion
Andres Garcia
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
Domitho Ibarra
 
Preparación e instalación del software de aplicación
Preparación e instalación del software de aplicaciónPreparación e instalación del software de aplicación
Preparación e instalación del software de aplicación
Diego Nicolas Ricaurte Lagos
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
Kareen's Maldonado
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
carolina peña
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
Victor Martinez
 

Similar a Compilador 22 (1) (20)

Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacion
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
1. introduccion a java
1. introduccion a java1. introduccion a java
1. introduccion a java
 
SOFTWARE DE SISTEMA
SOFTWARE DE SISTEMASOFTWARE DE SISTEMA
SOFTWARE DE SISTEMA
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Mipag web
Mipag webMipag web
Mipag web
 
Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Fundamentación teórica.12
Fundamentación teórica.12Fundamentación teórica.12
Fundamentación teórica.12
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De Programacion
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Preparación e instalación del software de aplicación
Preparación e instalación del software de aplicaciónPreparación e instalación del software de aplicación
Preparación e instalación del software de aplicación
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Fanny3
Fanny3Fanny3
Fanny3
 

Más de still01

Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horas
still01
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
still01
 
casos de uso
casos de usocasos de uso
casos de uso
still01
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
still01
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
still01
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
still01
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
still01
 
Exposicion internet1
Exposicion internet1Exposicion internet1
Exposicion internet1
still01
 
Servidores
ServidoresServidores
Servidores
still01
 
Exposicion hardware
Exposicion hardwareExposicion hardware
Exposicion hardware
still01
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
still01
 
Exposicion mantenimientos2
Exposicion mantenimientos2Exposicion mantenimientos2
Exposicion mantenimientos2
still01
 
Internet ultimete
Internet ultimeteInternet ultimete
Internet ultimete
still01
 
Método delphi
Método delphiMétodo delphi
Método delphi
still01
 
TRD Lluvia de ideas
TRD Lluvia de ideas TRD Lluvia de ideas
TRD Lluvia de ideas
still01
 
Tecnica Observacion
Tecnica ObservacionTecnica Observacion
Tecnica Observacion
still01
 
Tecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacionTecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacion
still01
 

Más de still01 (20)

Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horas
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
 
casos de uso
casos de usocasos de uso
casos de uso
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Uml
UmlUml
Uml
 
Exposicion internet1
Exposicion internet1Exposicion internet1
Exposicion internet1
 
Servidores
ServidoresServidores
Servidores
 
Proxy
ProxyProxy
Proxy
 
Exposicion hardware
Exposicion hardwareExposicion hardware
Exposicion hardware
 
Diapo 2
Diapo 2Diapo 2
Diapo 2
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
 
Exposicion mantenimientos2
Exposicion mantenimientos2Exposicion mantenimientos2
Exposicion mantenimientos2
 
Internet ultimete
Internet ultimeteInternet ultimete
Internet ultimete
 
Método delphi
Método delphiMétodo delphi
Método delphi
 
TRD Lluvia de ideas
TRD Lluvia de ideas TRD Lluvia de ideas
TRD Lluvia de ideas
 
Tecnica Observacion
Tecnica ObservacionTecnica Observacion
Tecnica Observacion
 
Tecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacionTecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacion
 

Compilador 22 (1)

  • 1.
  • 2.
  • 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.
  • 4. PARTES DE UN COMPILADOR
  • 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.