¿Cuál es la diferencia entre ensamblador y compilador?
El lenguaje ensamblador es un lenguaje de bajo nivel basado en el sistema de instrucciones del procesador. Utiliza mnemónicos para representar códigos de operación de instrucciones e identificadores para representar operandos de instrucciones. Como lenguaje, un compilador correspondiente a un lenguaje de alto nivel requiere un "ensamblador" que ensambla archivos sin formato en lenguaje ensamblador en código ejecutable por máquina. Los compiladores de lenguajes de alto nivel comúnmente utilizados incluyen la serie MASM de Microsoft y la serie TASM de Borland, así como algunos paquetes de software de ensamblaje gratuitos o para pequeñas empresas.
Un compilador es un programa que traduce "un lenguaje (normalmente un lenguaje de alto nivel)" a "otro lenguaje (normalmente un lenguaje de bajo nivel)". El flujo de trabajo principal de un compilador moderno: código fuente)→preprocesador)→compilador)→código objeto)→enlazador)→archivo ejecutable.
Los lenguajes informáticos avanzados facilitan a las personas la escritura, la lectura, la comunicación y el mantenimiento. El lenguaje de máquina puede ser interpretado y manipulado directamente por las computadoras. Un compilador toma como entrada un programa fuente en lenguaje ensamblador o de computadora de alto nivel y lo traduce a un programa equivalente en código de máquina en el lenguaje de destino. El código fuente es generalmente un lenguaje de alto nivel, como Pascal, C, C++, Java, programación china o lenguaje ensamblador, y el destino es el código objeto en lenguaje de máquina, a veces llamado código de máquina.
Para lenguajes de alto nivel como C# y VB, la función del compilador en este momento es compilar el código fuente en un código de bytes de un lenguaje intermedio común (MSIL/CIL). Finalmente, a través de la transformación de Common Language Runtime, se escribe NativeCode que la CPU puede calcular directamente.