Cuando se programa en un lenguaje de alto nivel, es necesario traducirlo para que el sistema lo pueda entender. En ese proceso de traducción hay varias partes involucradas del diseño a la ejecución.
Compilación: proceso de traducción de un programa escrito en lenguaje de alto nivel a otro expresado en lenguaje ensamblador.
Ensamblado (assembly): traducción del programa escrito en lenguaje ensamblador a otro expresado en lenguaje de máquina.
Proceso de enlace (linking): unir en un programa único distintos módulos que fueran ensamblados en forma separada.
Proceso de carga: traslado del programa a memoria y su preparación para ser ejecutado.