Como ya hemos visto en la lección anterior, “Software” es la categoría general de código que se ejecuta en el hardware. Si el hardware es un piano, entonces el software es la música.

Un software está compuesto por programas que tienen instrucciones que la CPU debe ejecutar, y se atan a reglas informáticas. Un software se escribe con lenguajes de programación, y la mayoría de estos lenguajes son de alto nivel.

Vamos a entrar un poco más en detalles sobre el software, específicamente hablando del código máquina, de las instrucciones y de los programas en ejecución.

Código de Máquina, compilación e interpretación

Una computadora puede ejecutar muchos programas a la vez, manteniendo el uso de la memoria, el procesamiento y la proyección en el monitor sin problemas. A veces, cuando la capacidad de una computadora se ve superada ó cuando el programa tiene errores, las cosas pueden no salir tan bien. De allí podemos experimentar que “se colgó”.

La Unidad Central de Procesamiento de un dispositivo, o CPU, es quién ejecuta las instrucciones de un software. No obstante, comprende un lenguaje que se conoce como “código de máquina” de bajo nivel (también conocido como código nativo). Este lenguaje del código de la máquina está integrado en el diseño del hardware de la CPU, no es algo que se puede cambiar a voluntad. Y los programas que ejecutamos deben, finalmente, estar construídos con ese lenguaje máquina.

Te vamos adelantando que el lenguaje máquina, básicamente, son 1 y 0. Escribir en lenguaje máquina es MUY lento, complejo e incómodo. Por eso han surgido lenguajes, como lenguaje ensamblador (assembler) y lenguajes de alto nivel (como JavaScript, C#, Java, etc) que facilitan la tarea de construir software. No obstante, este código generado no está preparado para ejecutarse en una computadora. Hay dos posibles maneras de hacerlo:

Instrucciones y Programas

El código de máquina de un programa informático define un conjunto de instrucciones individuales, y es lo único que la CPU puede ejecutar. Te sorprenderías en comprobar que estas instrucciones son muy primitivas, y permiten realizar operaciones como:

Cuando queremos ejecutar un programa, el código de ese programa está en lenguaje máquina (ya sea porque ha sido compilado o porque es interpretado). Si lo ejecutamos, todas las instrucciones que forman parte del programa se cargan en la memoria de la computadora y ejecutan esas instrucciones primitivas que comentamos antes. Este punto es importante: un programa, para que se ejecute, debe estar cargado en la memoria de la computadora. No alcanza con que esté en el disco rígido.

Volviendo a nuestro tema de ejecución: ¿puedes creer que un software como el navegador web que estás utilizando en este momento funcione a partir de instrucciones que simplemente pueden realizar operaciones de suma o comparación de dos números?

Aunque no lo creas, así es. La CPU ejecuta las instrucciones que fueron almacenadas en la memoria por el programa que está en ejecución, y esta ejecución sucede en un orden específico y de a una a la vez: