Historia de la informática - History of computer science

La historia de la informática comenzó mucho antes de nuestra disciplina moderna de la informática , apareciendo generalmente en formas como las matemáticas o la física . Los desarrollos de siglos anteriores aludían a la disciplina que ahora conocemos como informática . Esta progresión, desde los inventos mecánicos y las teorías matemáticas hacia los conceptos y las máquinas informáticas modernas , condujo al desarrollo de un campo académico importante, un avance tecnológico masivo en todo el mundo occidental y la base de un comercio y una cultura mundiales masivos.

Prehistoria

John Napier (1550-1617), el inventor de los logaritmos

La primera herramienta conocida para su uso en computación fue el ábaco , desarrollado en el período entre el 2700 y el 2300 a. C. en Sumer . El ábaco de los sumerios consistía en una tabla de columnas sucesivas que delimitaban los sucesivos órdenes de magnitud de su sistema numérico sexagesimal . Su estilo original de uso era mediante líneas dibujadas en arena con guijarros. Los ábacos de un diseño más moderno todavía se utilizan como herramientas de cálculo en la actualidad, como el ábaco chino .

En el siglo V a. C. en la antigua India , el gramático Pāṇini formuló la gramática del sánscrito en 3959 reglas conocidas como Ashtadhyayi, que era altamente sistematizada y técnica. Panini utilizó metárulos, transformaciones y recursiones .

Se cree que el mecanismo de Antikythera es una de las primeras computadoras analógicas mecánicas. Fue diseñado para calcular posiciones astronómicas. Fue descubierto en 1901 en el naufragio de Antikythera frente a la isla griega de Antikythera, entre Kythera y Creta , y se ha fechado alrededor del año 100 a. C.

Los dispositivos informáticos analógicos mecánicos aparecieron de nuevo mil años más tarde en el mundo islámico medieval y fueron desarrollados por astrónomos musulmanes , como el astrolabio con engranajes mecánicos de Abū Rayhān al-Bīrūnī y el torquetum de Jabir ibn Aflah . Según Simon Singh , los matemáticos musulmanes también lograron importantes avances en criptografía , como el desarrollo del criptoanálisis y el análisis de frecuencias por parte de Alkindus . Las máquinas programables también fueron inventadas por ingenieros musulmanes , como el flautista automático de los hermanos Banū Mūsā , y los autómatas humanoides programables y el reloj del castillo de Al-Jazari , que se considera la primera computadora analógica programable . En la Europa del siglo XIV aparecieron artefactos tecnológicos de complejidad similar , con relojes astronómicos mecánicos .

Cuando John Napier descubrió los logaritmos con fines computacionales a principios del siglo XVII, siguió un período de considerable progreso por parte de inventores y científicos en la fabricación de herramientas de cálculo. En 1623 Wilhelm Schickard diseñó una máquina calculadora, pero abandonó el proyecto, cuando el prototipo que había comenzado a construir fue destruido por un incendio en 1624. Alrededor de 1640, Blaise Pascal , un destacado matemático francés, construyó un dispositivo de adición mecánico basado en un diseño descrito por el matemático griego Héroe de Alejandría . Luego, en 1672, Gottfried Wilhelm Leibniz inventó el Stepped Reckoner que completó en 1694.

En 1837, Charles Babbage describió por primera vez su motor analítico, que se acepta como el primer diseño de una computadora moderna. El motor analítico tenía memoria expandible, una unidad aritmética y capacidades de procesamiento lógico capaces de interpretar un lenguaje de programación con bucles y bifurcaciones condicionales. Aunque nunca se construyó, el diseño se ha estudiado ampliamente y se entiende que es el equivalente de Turing . El motor analítico habría tenido una capacidad de memoria de menos de 1 kilobyte de memoria y una velocidad de reloj de menos de 10 Hertz.

Se requirió un avance considerable en la teoría de las matemáticas y la electrónica antes de que pudieran diseñarse las primeras computadoras modernas.

Lógica binaria

Gottfried Wilhelm Leibniz (1646-1716), desarrolló la lógica en un sistema numérico binario

En 1702, Gottfried Wilhelm Leibniz desarrolló la lógica en un sentido matemático formal con sus escritos sobre el sistema numérico binario. En su sistema, los unos y los ceros también representan valores verdaderos y falsos o estados de encendido y apagado . Pero pasó más de un siglo antes de que George Boole publicara su álgebra de Boole en 1854 con un sistema completo que permitía modelar matemáticamente los procesos computacionales.

Para entonces, se habían inventado los primeros dispositivos mecánicos impulsados ​​por un patrón binario. La revolución industrial había impulsado la mecanización de muchas tareas, y esto incluía el tejido . Las tarjetas perforadas controlaban el telar de Joseph Marie Jacquard en 1801, donde un agujero perforado en la tarjeta indicaba un uno binario y un punto sin perforar indicaba un cero binario . El telar de Jacquard estaba lejos de ser una computadora, pero ilustraba que las máquinas podían funcionar con sistemas binarios.

Aparición de una disciplina

Charles Babbage (1791-1871), uno de los primeros pioneros en informática

Charles Babbage y Ada Lovelace

Charles Babbage es considerado a menudo como uno de los primeros pioneros de la informática. A partir de la década de 1810, Babbage tuvo la visión de calcular mecánicamente números y tablas. Poniendo esto en realidad, Babbage diseñó una calculadora para calcular números de hasta 8 puntos decimales de largo. Continuando con el éxito de esta idea, Babbage trabajó para desarrollar una máquina que pudiera calcular números con hasta 20 lugares decimales. En la década de 1830, Babbage había ideado un plan para desarrollar una máquina que pudiera usar tarjetas perforadas para realizar operaciones aritméticas. La máquina almacenaría números en unidades de memoria y habría una forma de control secuencial. Esto significa que una operación se realizaría antes que otra de tal manera que la máquina produciría una respuesta y no fallaría. Esta máquina se conocería como el "motor analítico", que fue la primera representación verdadera de lo que es la computadora moderna.

A Ada Lovelace (Augusta Ada Byron) se le atribuye el mérito de ser la pionera de la programación informática y se la considera un genio matemático. Lovelace comenzó a trabajar con Charles Babbage como asistente mientras Babbage trabajaba en su “motor analítico”, la primera computadora mecánica. Durante su trabajo con Babbage, Ada Lovelace se convirtió en la diseñadora del primer algoritmo informático, que tenía la capacidad de calcular números de Bernoulli . Además, el trabajo de Lovelace con Babbage dio como resultado su predicción de que las computadoras del futuro no solo realizarían cálculos matemáticos, sino que también manipularían símbolos, matemáticos o no. Si bien nunca pudo ver los resultados de su trabajo, ya que el “motor analítico” no se creó en su vida, sus esfuerzos en años posteriores, a partir de la década de 1840, no pasaron desapercibidos.

Charles Sanders Peirce y circuitos de conmutación eléctricos

Charles Sanders Peirce (1839-1914), describió cómo las operaciones lógicas podrían llevarse a cabo mediante circuitos de conmutación eléctricos.

En una carta de 1886, Charles Sanders Peirce describió cómo las operaciones lógicas podrían llevarse a cabo mediante circuitos de conmutación eléctricos. Durante 1880-1881 mostró que las puertas NOR solas (o, alternativamente, las puertas NAND solas ) se pueden usar para reproducir las funciones de todas las demás puertas lógicas , pero este trabajo no se publicó hasta 1933. La primera prueba publicada fue de Henry M. Sheffer en 1913, por lo que la operación lógica NAND a veces se denomina trazo de Sheffer ; el NOR lógico a veces se llama flecha de Peirce . En consecuencia, estas puertas a veces se denominan puertas lógicas universales .

Finalmente, los tubos de vacío reemplazaron los relés para las operaciones lógicas. La modificación de Lee De Forest , en 1907, de la válvula Fleming se puede utilizar como puerta lógica. Ludwig Wittgenstein introdujo una versión de la tabla de verdad de 16 filas como proposición 5.101 del Tractatus Logico-Philosophicus (1921). Walther Bothe , inventor del circuito de coincidencia , obtuvo parte del Premio Nobel de Física de 1954 por la primera puerta AND electrónica moderna en 1924. Konrad Zuse diseñó y construyó puertas lógicas electromecánicas para su computadora Z1 (de 1935 a 1938).

Hasta y durante la década de 1930, los ingenieros eléctricos pudieron construir circuitos electrónicos para resolver problemas matemáticos y lógicos, pero la mayoría lo hizo de manera ad hoc , sin ningún rigor teórico. Esto cambió con la teoría de los circuitos de conmutación en la década de 1930. De 1934 a 1936, Akira Nakashima , Claude Shannon y Viktor Shetakov publicaron una serie de artículos que mostraban que el álgebra booleana de dos valores puede describir el funcionamiento de los circuitos de conmutación. Este concepto, de utilizar las propiedades de los interruptores eléctricos para hacer lógica, es el concepto básico que subyace a todas las computadoras digitales electrónicas . La teoría de los circuitos de conmutación proporcionó los fundamentos matemáticos y las herramientas para el diseño de sistemas digitales en casi todas las áreas de la tecnología moderna.

Mientras tomaba una clase de filosofía de pregrado, Shannon había estado expuesta al trabajo de Boole y reconoció que podría usarse para arreglar relés electromecánicos (luego usados ​​en interruptores de enrutamiento telefónico) para resolver problemas lógicos. Su tesis se convirtió en la base del diseño práctico de circuitos digitales cuando se hizo ampliamente conocida entre la comunidad de ingenieros eléctricos durante y después de la Segunda Guerra Mundial.

Alan Turing y la máquina de Turing

Antes de la década de 1920, las computadoras (a veces computadoras ) eran empleados humanos que realizaban cálculos. Por lo general, estaban bajo la dirección de un físico. Se emplearon muchos miles de computadoras en establecimientos comerciales, gubernamentales y de investigación. Muchos de estos empleados que servían como ordenadores humanos eran mujeres. Algunos realizaron cálculos astronómicos para calendarios, otros tablas balísticas para militares.

Después de la década de 1920, la expresión máquina de computación se refería a cualquier máquina que realizaba el trabajo de una computadora humana, especialmente aquellas de acuerdo con los métodos efectivos de la tesis de Church-Turing . La tesis establece que un método matemático es efectivo si pudiera establecerse como una lista de instrucciones que un empleado humano puede seguir con papel y lápiz, durante el tiempo que sea necesario, y sin ingenio o perspicacia.

Las máquinas que calculaban con valores continuos se conocieron como de tipo analógico . Utilizaron maquinaria que representaba cantidades numéricas continuas, como el ángulo de rotación de un eje o la diferencia en el potencial eléctrico.

La maquinaria digital, a diferencia de la analógica, podía representar un estado de un valor numérico y almacenar cada dígito individual. La maquinaria digital usaba motores diferenciales o relés antes de la invención de dispositivos de memoria más rápidos.

La frase máquina de computación fue cediendo gradualmente, después de finales de la década de 1940, a una mera computadora a medida que la aparición de la maquinaria digital electrónica se hizo común. Estas computadoras pudieron realizar los cálculos que realizaron los empleados humanos anteriores.

Dado que los valores almacenados por las máquinas digitales no estaban ligados a propiedades físicas como los dispositivos analógicos, una computadora lógica, basada en equipos digitales, podía hacer cualquier cosa que pudiera describirse como "puramente mecánica". La máquina teórica de Turing , creada por Alan Turing , es un dispositivo hipotético teorizado para estudiar las propiedades de dicho hardware.

Kurt Gödel comenzó a establecer los fundamentos matemáticos de la informática moderna con su teorema de incompletitud (1931). En este teorema, mostró que había límites a lo que podía probarse y refutarse dentro de un sistema formal . Esto llevó a la obra de Gödel y otros para definir y describir estos sistemas formales, incluyendo conceptos como funciones recursivas mu- y funciones lambda definibles .

En 1936, Alan Turing y Alonzo Church , de forma independiente y también juntos, introdujeron la formalización de un algoritmo , con límites en lo que se puede calcular, y un modelo "puramente mecánico" para la computación. Esto se convirtió en la tesis de Church-Turing , una hipótesis sobre la naturaleza de los dispositivos de cálculo mecánicos, como las computadoras electrónicas. La tesis establece que cualquier cálculo que sea posible puede realizarse mediante un algoritmo que se ejecute en una computadora, siempre que se disponga de suficiente tiempo y espacio de almacenamiento.

En 1936, Alan Turing también publicó su trabajo fundamental sobre las máquinas de Turing , una máquina de computación digital abstracta que ahora se conoce simplemente como la máquina universal de Turing . Esta máquina inventó el principio de la computadora moderna y fue el lugar de nacimiento del concepto de programa almacenado que utilizan casi todas las computadoras modernas. Estas máquinas hipotéticas fueron diseñadas para determinar formalmente, matemáticamente, lo que se puede calcular, teniendo en cuenta las limitaciones de la capacidad informática. Si una máquina de Turing puede completar la tarea, se considera que Turing es computable .

El físico de Los Alamos Stanley Frankel , ha descrito la opinión de John von Neumann sobre la importancia fundamental del artículo de Turing de 1936, en una carta:

Sé que en o alrededor de 1943 o '44 von Neumann era muy consciente de la importancia fundamental del artículo de Turing de 1936 ... Von Neumann me presentó ese artículo y, a instancias suyas, lo estudié con atención. Mucha gente ha aclamado a von Neumann como el "padre de la computadora" (en el sentido moderno del término), pero estoy seguro de que él mismo nunca habría cometido ese error. Bien podría llamarse la partera, tal vez, pero me enfatizó firmemente, y estoy seguro de que a otros, que la concepción fundamental se debe a Turing ...

John V. Atanasoff (1903-1995) creador de la primera computadora digital eléctrica llamada Computadora Atanasoff-Berry

Hardware informático temprano

La primera computadora digital electrónica del mundo, la computadora Atanasoff-Berry , fue construida en el campus del estado de Iowa desde 1939 hasta 1942 por John V. Atanasoff , profesor de física y matemáticas, y Clifford Berry , estudiante de ingeniería.

En 1941, Konrad Zuse desarrolló la primera computadora funcional controlada por programas del mundo, la Z3 . En 1998, se demostró que era Turing completo en principio. Zuse también desarrolló la máquina informática S2, considerada la primera computadora de control de procesos . Fundó una de las primeras empresas de informática en 1941, produciendo la Z4 , que se convirtió en la primera computadora comercial del mundo. En 1946, diseñó el primer lenguaje de programación de alto nivel , Plankalkül .

En 1948, se completó el Manchester Baby ; fue la primera computadora digital electrónica del mundo que ejecutó programas almacenados en su memoria, como casi todas las computadoras modernas. La influencia en el artículo seminal de Max Newman de Turing de 1936 sobre las Máquinas de Turing y de sus contribuciones lógico-matemáticas al proyecto, fueron cruciales para el desarrollo exitoso de Baby.

En 1950, el Laboratorio Nacional de Física de Gran Bretaña completó Pilot ACE , una computadora programable a pequeña escala, basada en la filosofía de Turing. Con una velocidad de funcionamiento de 1 MHz, el modelo piloto ACE fue durante algún tiempo la computadora más rápida del mundo. El diseño de Turing para ACE tenía mucho en común con las arquitecturas RISC actuales y requería una memoria de alta velocidad de aproximadamente la misma capacidad que una computadora Macintosh anterior , que era enorme para los estándares de su época. Si el ACE de Turing se hubiera construido según lo planeado y en su totalidad, habría estado en una liga diferente a las otras primeras computadoras.

Claude Shannon (1916-2001), ayudó a crear el campo de la teoría de la información

El primer error informático real fue una polilla . Estaba atascado entre los relés del Harvard Mark II. Si bien la invención del término 'error' a menudo se atribuye erróneamente a Grace Hopper , una futura contralmirante de la Armada de los EE. UU., Quien supuestamente registró el "error" el 9 de septiembre de 1945, la mayoría de los otros relatos entran en conflicto al menos con estos detalles. Según estos relatos, la fecha real fue el 9 de septiembre de 1947 cuando los operadores presentaron este 'incidente', junto con el insecto y la anotación "Se encontró el primer caso real de error" (consulte el error de software para obtener más detalles).

Shannon y la teoría de la información

Claude Shannon fundó el campo de la teoría de la información con su artículo de 1948 titulado A Mathematical Theory of Communication , que aplicó la teoría de la probabilidad al problema de cómo codificar mejor la información que un remitente quiere transmitir. Este trabajo es uno de los fundamentos teóricos de muchas áreas de estudio, incluida la compresión de datos y la criptografía .

Norbert Wiener (1894-1964) creó el término cibernética

Wiener y cibernética

A partir de experimentos con sistemas antiaéreos que interpretaban imágenes de radar para detectar aviones enemigos, Norbert Wiener acuñó el término cibernética de la palabra griega para "timonel". Publicó "Cybernetics" en 1948, que influyó en la inteligencia artificial . Wiener también comparó la computación , la maquinaria informática, los dispositivos de memoria y otras similitudes cognitivas con su análisis de las ondas cerebrales.

John von Neumann (1903-1957), introdujo la arquitectura de computadora conocida como arquitectura de Von Neumann

John von Neumann y la arquitectura de von Neumann

En 1946, se introdujo un modelo de arquitectura informática que se conoció como arquitectura de Von Neumann . Desde 1950, el modelo de von Neumann proporcionó uniformidad en los diseños informáticos posteriores. La arquitectura de von Neumann se consideró innovadora ya que introdujo la idea de permitir que las instrucciones y los datos de la máquina compartieran espacio de memoria. El modelo de von Neumann se compone de tres partes principales, la unidad aritmética lógica (ALU), la memoria y la unidad de procesamiento de instrucciones (IPU). En el diseño de máquinas de von Neumann, la IPU pasa direcciones a la memoria, y la memoria, a su vez, se enruta de regreso a la IPU si se está obteniendo una instrucción o a la ALU si se están obteniendo datos.

El diseño de la máquina de Von Neumann utiliza una arquitectura RISC (cálculo de conjunto de instrucciones reducido), lo que significa que el conjunto de instrucciones utiliza un total de 21 instrucciones para realizar todas las tareas. (Esto contrasta con CISC, computación de conjuntos de instrucciones complejos , conjuntos de instrucciones que tienen más instrucciones entre las que elegir). Con la arquitectura de von Neumann, la memoria principal junto con el acumulador (el registro que contiene el resultado de las operaciones lógicas) son los dos recuerdos que se abordan. Las operaciones se pueden realizar como aritmética simple (estas son realizadas por la ALU e incluyen suma, resta, multiplicación y división), ramas condicionales (estas se ven más comúnmente ahora como ifdeclaraciones o whilebucles. Las ramas sirven como go todeclaraciones) y movimientos lógicos. entre los diferentes componentes de la máquina, es decir, un movimiento del acumulador a la memoria o viceversa. La arquitectura de Von Neumann acepta fracciones e instrucciones como tipos de datos. Finalmente, como la arquitectura de von Neumann es simple, su gestión de registros también es simple. La arquitectura utiliza un conjunto de siete registros para manipular e interpretar los datos y las instrucciones obtenidos. Estos registros incluyen "IR" (registro de instrucción), "IBR" (registro de búfer de instrucción), "MQ" (registro de cociente multiplicador), "MAR" (registro de dirección de memoria) y "MDR" (registro de datos de memoria) ". La arquitectura también utiliza un contador de programa ("PC") para realizar un seguimiento de en qué parte del programa se encuentra la máquina.

John McCarthy (1927-2011), fue visto como uno de los padres fundadores de la inteligencia artificial

John McCarthy, Marvin Minsky y la inteligencia artificial

El término inteligencia artificial fue acreditado por John McCarthy para explicar la investigación que estaban haciendo para una propuesta para Dartmouth Summer Research . El nombramiento de la inteligencia artificial también condujo al nacimiento de un nuevo campo en la informática. El 31 de agosto de 1955 se propuso un proyecto de investigación formado por John McCarthy, Marvin L. Minsky, Nathaniel Rochester y Claude E. Shannon . El proyecto oficial comenzó en 1956 y constaba de varias partes importantes que, en su opinión, les ayudarían a comprender mejor la composición de la inteligencia artificial.

La idea de McCarthy y sus colegas detrás de las computadoras automáticas era que mientras una máquina es capaz de completar una tarea, lo mismo debería confirmarse con una computadora compilando un programa para obtener los resultados deseados. También descubrieron que el cerebro humano era demasiado complejo para ser replicado, no por la máquina en sí, sino por el programa. El conocimiento para producir un programa tan sofisticado aún no estaba allí.

El concepto detrás de esto fue observar cómo los humanos comprenden nuestro propio lenguaje y la estructura de cómo formamos oraciones, dando diferentes significados y conjuntos de reglas y comparándolos con un proceso de máquina. La forma en que las computadoras pueden entender es a nivel de hardware. Este lenguaje está escrito en binario (1 y 0). Esto tiene que estar escrito en un formato específico que le dé a la computadora el conjunto de reglas para ejecutar una pieza de hardware en particular.

El proceso de Minsky determinó cómo estas redes neuronales artificiales podrían organizarse para tener cualidades similares al cerebro humano. Sin embargo, solo pudo producir resultados parciales y necesitaba avanzar en la investigación sobre esta idea. Sin embargo, solo iban a recibir resultados parciales de pruebas.

La idea de McCarthy y Shannon detrás de esta teoría era desarrollar una forma de utilizar problemas complejos para determinar y medir la eficiencia de la máquina a través de la teoría y los cálculos matemáticos . Sin embargo, solo iban a recibir resultados parciales de las pruebas.

La idea detrás de la superación personal es cómo una máquina usaría un código que se modificaría automáticamente para hacerse más inteligente. Esto permitiría que una máquina crezca en inteligencia y aumente la velocidad de cálculo. El grupo creía que podían estudiar esto si una máquina pudiera mejorar el proceso de completar una tarea en la parte de abstracciones de su investigación.

El grupo pensó que la investigación en esta categoría podría dividirse en grupos más pequeños. Esta consistiría en información sensorial y de otro tipo sobre la inteligencia artificial. Las abstracciones en informática pueden referirse a las matemáticas y al lenguaje de programación.

Su idea de la creatividad computacional es cómo se puede ver que el programa o una máquina tienen formas similares de pensamiento humano. Querían ver si una máquina podía tomar un fragmento de información incompleta y mejorarlo para completar los detalles faltantes como puede hacer la mente humana. Si esta máquina pudiera hacer esto; necesitaban pensar en cómo determinaba la máquina el resultado.

Ver también

Referencias

Fuentes

Otras lecturas

enlaces externos