Software


El software es una colección de instrucciones que le dicen a una computadora cómo trabajar. [1] [2] Esto contrasta con el hardware , a partir del cual se construye el sistema y realmente realiza el trabajo.

En el nivel de programación más bajo , el código ejecutable consta de instrucciones en lenguaje de máquina soportadas por un procesador individual , típicamente una unidad central de procesamiento (CPU) o una unidad de procesamiento de gráficos (GPU). El lenguaje de máquina consta de grupos de valores binarios que significan instrucciones del procesador que cambian el estado de la computadora desde su estado anterior. Por ejemplo, una instrucción puede cambiar el valor almacenado en una ubicación de almacenamiento particular en la computadora, un efecto que el usuario no puede observar directamente. Una instrucción también puede invocar una de las muchas operaciones de entrada o salida., por ejemplo, mostrar texto en la pantalla de una computadora; provocando cambios de estado que deberían ser visibles para el usuario . El procesador ejecuta las instrucciones en el orden en que se proporcionan, a menos que se le indique "saltar" a una instrucción diferente o el sistema operativo lo interrumpa . A partir de 2015 , la mayoría de las computadoras personales , los dispositivos de teléfonos inteligentes y los servidores tienen procesadores con múltiples unidades de ejecución o múltiples procesadores que realizan cálculos juntos, y la computación se ha convertido en una actividad mucho más concurrente que en el pasado.

La mayoría del software está escrito en lenguajes de programación de alto nivel . Son más fáciles y eficientes para los programadores porque están más cerca de los lenguajes naturales que de los lenguajes de máquina. [3] Los idiomas de alto nivel se traducen al lenguaje de máquina utilizando un compilador o un intérprete o una combinación de ambos. El software también puede estar escrito en un lenguaje ensamblador de bajo nivel , que tiene una fuerte correspondencia con las instrucciones del lenguaje de máquina de la computadora y se traduce al lenguaje de máquina usando un ensamblador .

Ada Lovelace escribió un algoritmo para lo que habría sido la primera pieza de software en el siglo XIX, para el motor analítico planeado . [4] Creó pruebas para mostrar cómo el motor calcularía los números de Bernoulli . [4] Debido a las pruebas y el algoritmo, se la considera la primera programadora de computadoras. [5] [6]

La primera teoría sobre el software, anterior a la creación de las computadoras como las conocemos hoy, fue propuesta por Alan Turing en su ensayo de 1935, Sobre números computables, con una aplicación al problema de Entscheidung (problema de decisión). [ cita requerida ] Esto eventualmente condujo a la creación de los campos académicos de informática e ingeniería de software; ambos campos estudian software y su creación. [ cita requerida ] La informática es el estudio teórico de la informática y el software (el ensayo de Turing es un ejemplo de informática), mientras que la ingeniería de software es la aplicación de principios de ingeniería al desarrollo de software. [ cita requerida ]Antes de 1946, el software aún no eran los programas almacenados en la memoria de las computadoras digitales con programas almacenados, como lo entendemos ahora; los primeros dispositivos informáticos electrónicos fueron recableados en su lugar para "reprogramarlos". [ cita requerida ]

En 2000, Fred Shapiro, bibliotecario de la Facultad de Derecho de Yale, publicó una carta en la que revelaba que el artículo de 1958 de John Wilder Tukey "La enseñanza de las matemáticas concretas" [7] [8] contenía el uso más antiguo conocido del término "software". encontrado en una búsqueda en los archivos electrónicos de JSTOR , dos años antes de la cita del OED . [9] Esto llevó a muchos a darle crédito a Tukey por haber acuñado el término, particularmente en obituarios publicados ese mismo año, [10] aunque Tukey nunca reclamó crédito por tal acuñación. En 1995, Paul Niquette afirmó que originalmente había acuñado el término en octubre de 1953, aunque no pudo encontrar ningún documento que respalde su afirmación. [11]La primera publicación conocida del término "software" en un contexto de ingeniería fue en agosto de 1953 por Richard R. Carhart, en un Memorando de Investigación de Rand Corporation . [12]


Un diagrama que muestra cómo interactúa el usuario con el software de la aplicación en una computadora de escritorio típica . La capa de software de aplicación interactúa con el sistema operativo , que a su vez se comunica con el hardware . Las flechas indican el flujo de información.
Blender , un programa de software gratuito