El software es el equipamiento lógico de una computadora digital, es decir que es un soporte que tiene los componentes necesarios para poder realizar una tarea específica,
Charles Babbage, un matemático, tuvo una máquina analítica con un software producido incidentalmente, y fue su amiga lady Lovelace, quien aportó dicho software que no se llegó a usar dado que esa máquina nunca se llegó a completar.
En la primera computadora de propósitos generales, ENIAC, el control de sus operaciones estaba integrado parcialmente, ese control se realizaba por un circuito que por cada alambrado específico requería una aplicación. Por lo tanto resultaba muy trabajo tener que re-alambrar cada circuito cada que se necesitaba cambiar el uso del ENIAC.
Hasta el momento, no se estaba percibiendo ninguna diferencia entre el control de las operaciones y el equipo mismo. Siendo así que el concepto de programa de control almacenado en memoria precipitó el desarrollo del software; en éste se tuvieron dos tendencias que son los programas de servicio y los programas de aplicación. En el primero se trataba de facilitar el desarrollo de programas por medio de programas y segundo sobre una función en sí.
En algunos programas de servicio solo se permitía hacer notaciones como el hexadecimal o el octal más compactas que el binario y otros simplificaron más el proceso de reemplazar las notaciones con símbolos mnemónicos que eran más fácil para la instrucción de la máquina. Pero el paso más significativo de los programas de servicio fue la traducción de fórmulas, el cual permitió el desarrollo del más evolucionado del software y la descripción de algoritmos con expresiones algebraicas.