elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Compilacion: Fase de compilado y de ensamblado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Compilacion: Fase de compilado y de ensamblado  (Leído 3,821 veces)
Jomad205

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Compilacion: Fase de compilado y de ensamblado
« en: 24 Noviembre 2012, 18:48 pm »

Bueno, tengo un conflicto de informaciones.
Estaba recopilando apuntes sobre el funcionamiento del proceso de compilacion, y en llegados aquí tengo un problema:


Citar
El compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.
El programa escrito en lenguaje de alto nivel se denomina programa fuente o código fuente. El programa traducido a código binario se llama programa objeto o código objeto. Por lo tanto, el compilador se encarga de convertir el programa fuente en un programa objeto.
Una vez que se ha obtenido el programa objeto ya no es necesario volver a realizar la traducción (o compilación), a menos que se haga alguna modificación en el programa fuente, en cuyo caso habría que volver a compilarlo.
El programa objeto, una vez generado, puede ejecutarse en la máquina en la que fue compilado, o en otra de similares características (procesador, sistema operativo, etc.).
Cuando el programa objeto se haya disperso en diferentes archivos (lo que ocurre con frecuencia cuando el programa es grande o, sencillamente, cuando usa funciones escritas por terceras personas), puede ser necesario un proceso previo de enlace de los diferentes módulos. De eso se encarga un programa llamado enlazador o linker, que suele actuar inmediatamente después del compilador.




2.- Ensamblado

 Se llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.
Fíjese en que tanto el programa traductor como el lenguaje se llaman del mismo modo: ensamblador.Como el lenguaje ensamblador es muy próximo al binario, estos traductores son programas relativamente sencillos.
El ensamblado transforma el programa escrito en lenguaje ensamblador a código objeto, un archivo binario en lenguaje de máquina ejecutable por el procesador.

El caso es que lo que me choca es que lo veo en la documentación que he ido encontrando como 2 pasos independientes que se llevan a cabo uno detras de otro, pero encuentro en unos sitios en los que me dice ' compilador, genera un archivo tipo objeto ) y cuando leo ensamblador , tambien encuentro que genera un archivo tipo objeto (.o) . Pero en otra documentacion de otro sitio distinto leo que el compilador genera un archivo .s (ensamblador) y que en el paso de ensamblado se genera un archivo objeto (.o).

Total que me estoy armando un galimatias en la cabeza de tres pares de narices, y tanto leer lo mismo de formas distintas (o al menos yo lo entiendo de formas distintaS)
Empiezo a comprender menos el proceso... U.u

Ya no se si el compilador genera un archivo binario, si el compilador un objeto... y lo peor de todo ¿No comprendo que diferencia hay entre archivo binario o de tipo ensamblador?


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Compilacion: Fase de compilado y de ensamblado
« Respuesta #1 en: 24 Noviembre 2012, 19:33 pm »

ensamblador o del compilador generan los archivos .obj. luego el linker une todo los archivos objetos, resuelve direcciones de variables, funciones y crea el archivo binario. respecto a la salida de archivos del compilador eso depende del compilador, algunos
compiladores puede generar varios tipo de informacion adicional segun los parametros que se le han pasado.


esto te puede servir explica bien:
http://es.wikipedia.org/wiki/Compilador


En línea

Jomad205

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Compilacion: Fase de compilado y de ensamblado
« Respuesta #2 en: 25 Noviembre 2012, 11:51 am »

¡Grácias! Sí, ya habia leido esa documentación, bueno de todas formas he seguido indagando y ya lo tengo mas claro.
Segun he entendido el compilador transforma el codigo fuente en codigo ensamblador (.s) que podria ser un archivo de texto y que aun no es binario. Por lo que me han dicho lo normal es que este fichero no lo vea ya que desde este paso hasta el siguiente el fichero llega a traves de pipes (aunque gcc tiene una funcion para poder verlo).
Y a continuación llegamos a la fase de ensamblado, en la que se convierten estos datos en ensamblador en archivos binarios interpretables por el microprocesador, y es cuando se genera el fichero objeto (***.o).

Bueno, para terminar iría la fase de enlazado, pero como esta la comprendía bien, no me explayo más. :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda - Ensamblado « 1 2 3 »
ASM
h0oke 20 11,949 Último mensaje 12 Agosto 2009, 09:43 am
por Erik#
[C#] ¿falta una directiva de uso o una referencia de ensamblado?
.NET (C#, VB.NET, ASP)
Siuto 5 28,757 Último mensaje 2 Enero 2010, 18:48 pm
por Siuto
error al cargar ensamblado asp.net
Desarrollo Web
TaaDow 2 4,847 Último mensaje 30 Junio 2010, 20:39 pm
por El_Digital
compilado
ASM
mapers 3 3,166 Último mensaje 9 Octubre 2010, 10:56 am
por Eternal Idol
bombilo prende de fase a tierra
Electrónica
Manuel5123 1 4,102 Último mensaje 19 Diciembre 2013, 00:40 am
por Fox_Neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines