Un desensamblador y un compilador trabajan con el código binario de formas opuestas pero complementarias dentro del ciclo de programación y ejecución de software. Aquí tienes un desglose:
Desensamblador
¿Qué hace?: Toma el código binario o el lenguaje máquina y lo convierte en ensamblador, un lenguaje de programación de bajo nivel que es más fácil de entender para los humanos (aunque sigue siendo cercano al hardware).
-
¿Por qué se usa?:
- Para analizar programas existentes (reversar ingeniería).
- Encontrar errores (debugging).
- Investigar cómo funciona un software (a veces en ciberseguridad o desarrollo).
Ejemplo: Supongamos que el binario contiene una instrucción como
101010, un desensamblador traduciría esto en algo como
MOV AX, BX, que indica una operación en la arquitectura de una
CPU.
El Compilador
¿Qué hace?: Toma un código escrito en un lenguaje de alto nivel (como Python, C++ o Java) y lo traduce a código binario o lenguaje máquina, que puede ser ejecutado por la CPU directamente.
-
¿Por qué se usa?:
- Para convertir programas legibles para los humanos en instrucciones que el hardware entienda.
- Optimizar el código para que sea más eficiente.
- El compilador se encarga de evitar que se pueda traducir un programa con código fuente mal escrito y de hacer otras verificaciones previas, de modo que el código máquina tiene ciertas garantías de que cumple cuando menos con los estándares de sintaxis obligatorios de un lenguaje. Gráficamente el proceso sería algo así:
int a = 5; pasaría por el compilador y se traduciría a una
secuencia binaria que el procesador pueda ejecutar. El archivo ejecutable no es válido para cualquier ordenador. Por ejemplo, si se ha generado el ejecutable para Windows, no podrá utilizarse en Linux. Sin embargo, como hemos dicho C es un lenguaje estandarizado y apto para todas las plataformas. Por tanto sí podemos utilizar el mismo código fuente y pasarlo por distintos compiladores para obtener los ejecutables en distintos sistemas operativos (como Windows, Linux o MacOS).
Hay muchos compiladores C. Casi con total seguridad, ya tienes un compilador C (o más de uno) instalado en tu ordenador, aunque no seas consciente de ello. ¿Por qué? Como hemos dicho C es un lenguaje que ha tenido y tiene gran importancia tanto para sistemas operativos como para software, por ello muchos sistemas operativos incorporan compiladores C.
En resumen:
- Desensamblador: Traducir de bajo nivel (binario) a entendible (ensamblador).
- Compilador: Traducir de alto nivel (humano) a bajo nivel (binario).
Texto: Hola, este es un programa realizado por Milton Antonio Rodriguez Lopez$
Texto en Binario:
01001000 01101111 01101100 01100001 00101100 00100000 01100101 01110011 01110100 01100101 00100000 01100101 01110011 00100000 01110101 01101110 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101 01100001 00100000 01110010 01100101 01100001 01101100 01101001 01111010 01100001 01100100 01101111 00100000 01110000 01101111 01110010 00100000 01001101 01101001 01101100 01110100 01101111 01101110 00100000 01000001 01101110 01110100 01101111 01101110 01101001 01101111 00100000 01010010 01101111 01100100 01110010 01101001 01100111 01110101 01100101 01111010 00100000 01001100 01101111 01110000 01100101 01111010 00100100


