Erik Fair tiene la respuesta correcta.
El código nativo (máquina) es un código que el procesador ejecuta directamente, en contraste con el código que se ejecuta en una máquina virtual o mediante un intérprete.
El código nativo no se limita a un idioma, en teoría cualquier lenguaje podría adoptarse para compilar el código nativo, hasta cierto punto.
- ¿Cómo puede un ingeniero eléctrico aprender programación práctica? ¿Qué se necesita en el mundo real?
- ¿Debo ingresar a la industria del juego o convertirme en desarrollador / ingeniero / programador de software? No me importa el dinero.
- ¿Cuáles son algunos buenos sistemas de gestión de documentos para pequeñas compañías farmacéuticas?
- ¿Es una buena idea adherirse estrictamente a Scrum?
- ¿Qué IIT y NIT son particularmente famosos por la Ingeniería del Software?
Los lenguajes como C generalmente se compilan en código nativo. Por ejemplo, gcc (popular compilador de C) traduce el código C en lenguaje ensamblador que luego se ensambla en código máquina.
Utilizo el término ensamblado en lugar de compilado, ya que el lenguaje ensamblador es simplemente una representación de instrucciones de código de máquina. Los diferentes procesadores tienen diferentes conjuntos de instrucciones, por lo que el lenguaje ensamblador difiere entre la arquitectura del procesador. Por ejemplo, la mayoría de los dispositivos móviles se ejecutan en un procesador ARM, por lo que un compilador de C en un dispositivo móvil traducirá el código C en un ensamblaje ARM que luego se ensamblará en código máquina. La mayoría de las PC y laptops de consumo utilizan CPU con conjuntos de instrucciones x86 (32 bits) o x86-64 (64 bits).
Java y C # son ejemplos de lenguajes compilados que se ejecutan en máquinas virtuales. Ambos se compilan en su propia forma de bytecode. El compilador de Java traduce el código de Java en código de bytes de Java que es ejecutado por la máquina virtual de Java. C # y otros lenguajes .NET compilan en CLI que es ejecutado por CLR. Tanto la máquina virtual Java como el CLR hacen uso de la compilación Just-in-time para acelerar la ejecución del código traduciendo el código de bytes al código de la máquina durante el tiempo de ejecución.
Python y Perl son ejemplos de lenguajes interpretados. Puede ejecutar el código directamente sin tener que compilar. Dicho esto, Python compila a bytecode antes de la ejecución y este bytecode lo ejecuta una máquina virtual.
El código nativo es más rápido porque lo ejecuta directamente el procesador, no hay intermediario.