¿Quién descubrió la programación de computadoras?

Charles Babbage inventó la primera “computadora” mecánica completa de Turing, llamada Analytical Engine, pero no fue construida.

Ada Lovelace mantuvo correspondencia con él durante su desarrollo del motor analítico. Se le atribuye el desarrollo de un algoritmo para el motor analítico para calcular una secuencia de números de Bernoulli. Aunque hay desacuerdo sobre cuántas de las ideas fueron de Lovelace, a menudo se la describe como la primera programadora de computadoras. También tradujo y escribió literatura que apoya el proyecto. Con respecto a la programación del motor mediante tarjetas perforadas, una vez escribió: “Podemos decir con la mayor acierto que el motor analítico teje patrones algebraicos del mismo modo que el telar Jacquard teje flores y hojas”.

Antes de la definición precisa de la función computable, los matemáticos a menudo usaban el término informal efectivamente calculable para describir funciones que son computables mediante métodos de papel y lápiz. En la década de 1930, se hicieron varios intentos independientes para formalizar la noción de computabilidad:

En 1933, el matemático austriaco-estadounidense Kurt Gödel, con Jacques Herbrand, creó una definición formal de una clase llamada funciones recursivas generales. La clase de funciones recursivas generales es la clase más pequeña de funciones (posiblemente con más de un argumento) que incluye todas las funciones constantes, proyecciones, la función sucesora, y que está cerrada bajo composición de funciones y recursividad.

En 1936, Alonzo Church creó un método para definir funciones llamado cálculo λ. Dentro del cálculo λ, definió una codificación de los números naturales llamados los números de la Iglesia. Una función en los números naturales se llama λ-computable si la función correspondiente en los números de la Iglesia se puede representar mediante un término del cálculo λ.

También en 1936, antes de enterarse del trabajo de Church, Alan Turing creó un modelo teórico para máquinas, ahora llamado máquinas de Turing, que podía realizar cálculos a partir de entradas mediante la manipulación de símbolos en una cinta. Dada una codificación adecuada de los números naturales como secuencias de símbolos, una función en los números naturales se llama Turing computable si alguna máquina de Turing calcula la función correspondiente en números naturales codificados.

Church y Turing demostraron que estas tres clases formalmente definidas de funciones computables coinciden: una función es λ-computable si y solo si es Turing computable si y solo si es recursiva en general. Esto ha llevado a los matemáticos y científicos de la computación a creer que el concepto de computabilidad se caracteriza con precisión por estos tres procesos equivalentes. Otros intentos formales para caracterizar la computabilidad han fortalecido posteriormente esta creencia.

En mi opinión, fue John von Neumann (Neumann János) quien creó los conceptos básicos de los lenguajes de programación modernos.

Es difícil describir lo que ha hecho, pero si está interesado en sus trabajos aquí hay algunos enlaces:

Una historia de lenguajes de programación de computadoras

John von Neumann

La programación de computadoras no fue descubierta, fue inventada.
Hay muchas personas, descubrimientos e ideas diferentes que se han involucrado en esto, pero debe consultar a las siguientes tres personas:
https://en.wikipedia.org/wiki/Ch
https://en.wikipedia.org/wiki/Ad
https://en.wikipedia.org/wiki/Al
Pero realmente, el control planificado de una máquina va mucho más atrás que cualquiera de estas personas:
https://en.wikipedia.org/wiki/Au
Por ejemplo, aquí hay una máquina de computación analógica que fue diseñada para calcular la ubicación de futuros eventos astronómicos tales como eclipses para producir futuros calandrias, esto fue “programado” en un período de tiempo estimado entre 150 y 100 AC: https: / /en.wikipedia.org/wiki/An