Hechizando máquinas ¿Qué es la programación y cómo funcionan las computadoras?

Estamos a punto de estudiar la idea de un proceso computacional. Los procesos computacionales son seres abstractos que habitan las computadoras. A medida que evolucionan, los procesos manipulan otras cosas abstractas llamadas datos. La evolución de un proceso está dirigida por un patrón de reglas llamado programa. La gente crea programas para dirigir procesos. En efecto, conjuramos los espíritus de la computadora con nuestros hechizos.
(Tomado del libro SICP — MIT)

Así que ¿Qué es un programa? Es el conjunto de “hechizos” que usamos para dirigir procesos computacionales. Así que programar es justamente componer estos “hechizos” para dirigir uno o más de estos “seres” y que nos ayuden a resolver problemas. Estos “seres” son muy serviciales y operan a alta velocidad, así que son extraordinariamente útiles para automatizar tareas que sabemos hacer pero nos llevaría mucho tiempo realizar.

Este “ser” que llamamos proceso computacional podemos verlo como una máquina compuesta de lo siguiente:

  • Entradas: Datos que provienen de afuera del proceso y que serán usados por el mismo
  • Procesamiento: Logica y operaciones
  • Estado: Sitio donde se almacenan los datos que maneja el proceso. Pueden ser datos de entrada o resultados parciales de un operación que se está realizando.
  • Salidas: Resultados del proceso

Estos procesos son abstractos (intangibles) y viven dentro de las computadoras, las cuales también poseen entradas, procesamiento, estado y salidas pero a diferencia de los procesos, estas son máquinas tangibles con las cuales interactuamos directamente. En el caso de las computadoras sus partes son:

  • Entradas: Teclado, mouse, microfono, camara, sensores, puertos, etc
  • Procesamiento: Procesadores
  • Estado: Memoria RAM y Disco Duro
  • Salidas: Pantallas, parlantes, motores, actuadores, etc

Existen programas de gran extensión y complejidad, como el navegador en el que estás leyendo este artículo, el cual puede tener de 15 a 20 millones de líneas de código, lo que lo hace una máquina de un tamaño monumental. Los navegadores son programas con una gran labor de ingeniería, poseen complejas arquitecturas y en su mayoría son de código abierto.

Actualmente estas máquinas están en todas partes y es una tendencia que va en aumento. Cada que vez tengas un smartphone, una tablet, un computador u otro dispositivo !piensa en todo el poder que tienes en tus manos! Un iPhone 6 es alrededor de 120 millones de veces más potente que la computadora que guió al Apollo a la Luna.

Espero que este artículo haya ampliado tu conocimiento en el tema y despierte tu curiosidad por estas !fascinantes máquinas!