Inicio › Tecnología › Código De Bytes
Representación intermedia del código fuente, situada entre el lenguaje de alto nivel escrito por el programador y las instrucciones nativas del procesador. Un compilador traduce primero el código fuente a bytecode, un conjunto de instrucciones compactas y portables qué no dependen del hardware concreto; después, una máquina virtual como la JVM en Java o la CLR en .NET interpreta o compila ese bytecode a código máquina en el momento de la ejecución. Esta capa intermedia es lo qué permite qué un mismo programa compilado corra sin cambios en sistemas operativos y arquitecturas de procesador distintas.
Es un paso intermedio entre lo qué escribe el programador y lo qué entiende el procesador: un código compacto qué no es directamente el idioma de la máquina, pero tampoco el lenguaje legible del programador, y qué un programa especial, la máquina virtual, sabe interpretar en cualquier ordenador.
Cuando se compila un programa Java, el resultado son archivos .class con bytecode, no un ejecutable nativo de Windows o Linux; ese mismo bytecode corre igual en un servidor Linux, un portátil Windows o un Mac siempre qué cada uno tenga instalada su propia máquina virtual, evitando recompilar el programa para cada sistema operativo distinto.
No; el código máquina son instrucciones binarias específicas de un procesador concreto qué se ejecutan directamente, mientras qué el bytecode es una representación intermedia genérica qué aún necesita una máquina virtual para convertirse en instrucciones qué el procesador entienda.
Es un enfoque común en varios ecosistemas: .NET compila a un bytecode llamado CIL, Python genera archivos .pyc con bytecode para su intérprete, y varios otros lenguajes de máquina virtual siguen el mismo patrón intermedio.
Puede introducir cierta sobrecarga frente a un ejecutable nativo puro, aunque las máquinas virtuales modernas usan compilación just-in-time para traducir las partes más usadas del bytecode a código máquina real durante la ejecución, reduciendo esa diferencia.