Saltar a contenido

Tipos de código y máquinas virtuales

Durante la programación se generan distintos tipos de código. Cada uno cumple un papel en el proceso que lleva de lo que escribe el programador hasta lo que entiende el ordenador.

Código fuente

  • Es el que escribe el programador en un lenguaje de alto nivel.
  • Se guarda en ficheros de texto.
  • Ejemplo en Java:
public class Hola {
    public static void main(String[] args) {
        System.out.println("Hola Mundo");
    }
}

Código objeto

  • Es el resultado de compilar el código fuente.
  • Lo genera el compilador.
  • Está en binario (no legible para humanos).
  • No se puede ejecutar directamente.
  • Se guarda en ficheros intermedios:
    - Windows → .obj
    - Linux → .o
  • Varios ficheros de código objeto se pueden agrupar en librerías.

Código ejecutable

  • Se obtiene al enlazar uno o varios ficheros de código objeto con las librerías necesarias.
  • Lo genera el linker (enlazador).
  • Es un archivo binario ejecutable por el sistema operativo.
  • Ejemplos:
    • Windows → .exe, .dll
    • Linux → ejecutables sin extensión específica.

Máquinas virtuales

  • Una máquina virtual (VM) es un entorno de ejecución que actúa como intermediario entre el programa y el sistema operativo.
  • Ejecuta bytecode (código intermedio) en cualquier máquina que tenga la VM instalada.
  • Ventaja: portabilidad → el mismo programa puede funcionar en distintos sistemas (Windows, Linux, macOS).
  • Ejemplo más conocido: Java Virtual Machine (JVM)
    - El compilador de Java genera bytecode (.class).
    - La JVM interpreta ese bytecode en cualquier sistema con la máquina virtual instalada.

Actividad

  • AC 103 (RA 1 / CE1e / IC1 / 1p) Escoge 3 situaciones en las que sea necesario el uso de cada uno de los tres tipos de código y de máquinas virtuales. Coméntalas y reflexiona sobre los distintos tipos de código y cómo crees que puedes aplicarlos en DAM.