Hazte a un lado el martes de parches: ¡es el día de Ada Lovelace! Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Hazte a un lado el martes de parches: ¡es el día de Ada Lovelace!

El segundo martes de cada mes es el día habitual de Microsoft para las actualizaciones de seguridad, todavía conocido por casi todo el mundo por su apodo no oficial de "Patch Tuesday".

Pero el segundo martes de octubre también es Día de Ada Lovelace, celebrando Ada, condesa de Lovelace.

Ada fue una verdadera pionera no solo de la computación, sino también de la informática, y le dio su nombre al lenguaje de programación Ada.

Curiosamente, el idioma Ada surgió de un proyecto del Departamento de Defensa de los EE. UU. destinado a "desbabelizar" el mundo de la codificación gubernamental, donde cada departamento parecía favorecer un idioma diferente, o un dialecto de idioma diferente, haciéndolo más difícil, más costoso y más costoso. menos fiables para conseguir que trabajen juntos.

Ada tenía numerosas características sintácticas destinadas a mejorar la legibilidad y evitar errores comunes. A diferencia de los comentarios en C, que comienzan con /* y correr hasta el siguiente */, quizás muchas líneas después, Ada simplemente ignora cualquier cosa después -- en cualquier línea, por lo que los comentarios no pueden extenderse accidentalmente más allá de lo previsto. En lugar de encerrar todos los bloques de código de varias líneas entre corchetes ondulados ({...}, también conocido como frenos), Ada tiene un terminador único para cada tipo de bloque multilínea, por ejemplo end record, end loop y end if. Sospechamos que Ada Lovelace habría aplaudido la claridad de su lenguaje homónimo, pero Ada-el-lenguaje realmente nunca se dio cuenta, y la sintaxis de corchetes ondulados de C ganó en gran medida, con Python quizás el único lenguaje sin corchetes ondulados en uso extendido. Los corchetes ondulados son un aspecto vital de C, C++, C#, Go, Java, JavaScript, Perl, Rust y muchos otros lenguajes populares.

La era de Ada Lovelace

Es posible que se sorprenda al descubrir, dada la fuerte asociación del nombre de Ada con los inicios de la informática, que ella vivió en la primera mitad del siglo XIX, mucho antes de que existiera algo que actualmente reconocemos como una computadora, o incluso una calculadora. .

(Ada murió de cáncer de útero en 1852 con solo 36 años).

Pero aunque las computadoras en su sentido moderno no existían en el siglo XIX, muy pronto hice.

Así es como casi sucedió.

Charles Babbage, a principios del siglo XIX, ideó un famoso dispositivo de cálculo mecánico llamado Motor de diferencia que podría, al menos en teoría, resolver automáticamente ecuaciones polinómicas de sexto grado, por ejemplo, encontrando valores para X que satisfagan:

aX6 +bX5 +cX4 +dX3 +eX2 + fX + g = 0

El gobierno del Reino Unido estaba interesado porque un dispositivo de este tipo podría usarse para crear tablas matemáticas precisas, como raíces cuadradas, logaritmos y proporciones trigonométricas.

Y cualquier máquina buena en cálculos trigonométricos también sería útil para computar cosas como tablas de artillería que podrían revolucionar la precisión de la artillería en tierra y mar.

Pero Babbage tenía dos problemas.

En primer lugar, nunca pudo alcanzar la precisión de ingeniería necesaria para que el motor diferencial funcionara correctamente, porque involucraba suficientes engranajes entrelazados que la reacción (inexactitudes pequeñas pero acumulativas que conducen a la "deficiencia" en el mecanismo) lo bloquearía.

En segundo lugar, parece haber perdido interés en la máquina diferencial cuando se dio cuenta de que era un callejón sin salida; en términos modernos, puede pensar en ella como una calculadora de bolsillo, pero no como una tableta o una computadora portátil.

Así que Babbage se adelantó con el diseño de un dispositivo aún más complejo que denominó el Motor analítico, que podría resolver problemas científicos mucho más generales que un tipo de ecuación polinomial.

Tal vez como era de esperar, aunque lamentablemente en retrospectiva. el gobierno no estaba demasiado interesado en financiar el proyecto más avanzado de Babbage.

Dado que no había logrado construir el mecanismo necesario para un solucionador de ecuaciones mucho más simple, ¿qué posibilidades tenía una computadora gigante de propósito general, impulsada por vapor, de entregar algún resultado útil?

El circuito de conferencias europeas

En un curioso giro de cooperación internacional multilingüe, Babbage viajó a Italia para dar una conferencia promocionando su motor analítico.

En la audiencia estaba un ingeniero militar llamado Capitán Luigi Menabrea, quien se inspiró para cooperar con Babbage para producir un artículo de 1842 que describía la máquina.

Aunque era italiano, Menabrea publicó su artículo en francés…

…y fue Ada Lovelace quien luego tradujo el artículo de Menabrea en Inglés.

A instancias de Babbage, Ada también agregó una serie de Notas del traductor, que resultó no solo ser más del doble de largo que el informe original de Menabrea, sino también más perspicaz, explicando varias características importantes de lo que ahora llamaríamos una computadora de propósito general.

Walter Isaacson, en su libro de excelente lectura Los innovadores, publicado en 2014, describe cómo Ada “exploró cuatro conceptos que tendrían resonancia histórica un siglo después cuando finalmente nació la computadora”:

  • Ada reconoció que la Máquina Analítica, a diferencia de la Máquina Diferencial, era verdaderamente un dispositivo de propósito general, porque no solo podía programarse para hacer una cosa, sino también, y con relativa facilidad, reprogramarse para realizar una tarea completamente diferente.

En las propias palabras de Ada (esta era una época en la que la literatura científica todavía estaba más en contacto con la literatura de lo que quizás lo esté hoy):

En realidad, la Máquina Diferencial (como ya se ha explicado en parte) no puede hacer más que sumar; y cualquier otro proceso, sin exceptuar los de simple resta, multiplicación y división, puede ser realizado por él sólo en la medida en que sea posible, mediante artificios y arreglos matemáticos juiciosos, reducirlos a una serie de sumas. El método de las diferencias es, de hecho, un método de sumas; y como incluye dentro de sus medios un mayor número de resultados que pueden obtenerse simplemente por adición, que cualquier otro principio matemático, fue muy apropiadamente seleccionado como la base sobre la cual construir una Máquina de Sumar, para dar a los poderes de tal máquina el rango más amplio posible. La Máquina Analítica, por el contrario, puede sumar, restar, multiplicar o dividir con igual facilidad; y realiza cada una de estas cuatro operaciones de manera directa, sin la ayuda de ninguna de las otras tres. Este hecho lo implica todo; y apenas es necesario señalar, por ejemplo, que mientras que la máquina diferencial puede simplemente tabular y es incapaz de desarrollar, la máquina analítica puede tabular o desarrollar.

  • Ada se dio cuenta de que el motor analítico no se limitaba a codificar y calcular con números. Aunque digitales, y basadas en la capacidad de realizar cálculos numéricos, estas operaciones digitales, explicó, podrían en teoría representar proposiciones lógicas (como damos por sentado hoy en día en if ... then ... else ... end if declaraciones), notas musicales, etc.

Como dijo Ada:

[La máquina analítica] podría actuar sobre otras cosas además del número, si se encontraran objetos cuyas relaciones fundamentales mutuas pudieran expresarse mediante las de la ciencia abstracta de las operaciones, y que también deberían ser susceptibles de adaptaciones a la acción de la notación operativa y el mecanismo de el motor. Suponiendo, por ejemplo, que las relaciones fundamentales de los sonidos agudos en la ciencia de la armonía y de la composición musical fueran susceptibles de tal expresión y adaptaciones, la máquina podría componer piezas musicales elaboradas y científicas de cualquier grado de complejidad o extensión. La máquina analítica es una encarnación de la ciencia de las operaciones, construida con una peculiar referencia al número abstracto como sujeto de esas operaciones.

  • A Ada se le ocurrió el concepto de reutilizar partes de lo que ahora llamamos programas. En este sentido, se puede decir que inventó el concepto de subrutina, incluidas las subrutinas recursivas (funciones que simplifican la solución al dividir un cálculo en una serie de subcálculos similares y luego llamarse a sí mismos).
  • Ada primero abordó útilmente la pregunta "¿Pueden pensar las máquinas?" Este es un tema que nos ha preocupado desde entonces.

La conexión Frankenstein

El padre de Ada (aunque ella nunca lo conoció) era el infame poeta Lord Byron, quien pasó unas memorables vacaciones lluviosas en Suiza escribiendo historias de terror con sus amigos literarios Percy y Mary Shelley.

Los esfuerzos de Byron y Percy Shelley en este amistoso concurso de escritura están totalmente olvidados hoy en día, pero la novela seminal de Mary Shelley Frankenstein; o, El Prometeo Moderno (publicado en 1818) es popular y muy respetado hasta el día de hoy.

La famosa historia de Frankenstein exploró los dilemas morales que rodean lo que hoy podríamos llamar inteligencia artificial. (Frankenstein, no lo olvide, fue el científico que realizó el experimento, no la IA que surgió del proyecto).

Sin embargo, Ada no parecía compartir las preocupaciones distópicas del amigo de su padre sobre los motores analíticos o, de hecho, sobre las computadoras en general.

Ofreció la opinión, en la sección final de su Notas del traductor, ese:

La Máquina Analítica no tiene pretensión alguna de originar nada. Puede hacer cualquier cosa que sepamos ordenarle que realice. Puede seguir el análisis; pero no tiene el poder de anticipar ninguna relación o verdad analítica. Su misión es ayudarnos a poner a nuestra disposición lo que ya conocemos. Está calculado que esto lo efectúe primaria y principalmente, por supuesto, a través de sus facultades ejecutivas; pero es probable que ejerza una influencia indirecta y recíproca sobre la ciencia misma de otra manera. Porque, al distribuir y combinar las verdades y las fórmulas del análisis de tal manera que puedan volverse más fácil y rápidamente susceptibles a las combinaciones mecánicas de la máquina, las relaciones y la naturaleza de muchos temas en esa ciencia se arrojan necesariamente bajo nuevas luces, y más profundamente investigado. Esta es una consecuencia decididamente indirecta y algo especulativa de tal invención.

Poco más de 100 años después, cuando Alan Turing revisó el tema de la inteligencia artificial en su propio artículo. Computing Machinery and Intelligence, y presentó su ahora famosa prueba de Turing, él apodó esto La objeción de Lady Lovelace.

¿Qué hacer?

La próxima vez que te encuentres escribiendo código como...

   -- Una cosa rara: la función de Ackermann. -- ¡Computable, pero no recursivo primitivo! -- (No puede escribirlo con los antiguos bucles for --, pero puede estar seguro de que terminará -- incluso si lleva mucho tiempo). local ack = function(m,n) if m == 0 luego devuelve n+1 end if n == 0 luego devuelve ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

…recuerde que las subrutinas recursivas de este tipo comenzaron en la imaginación científica de alguien que sabía cómo debería ser una computadora y cómo sería probablemente, pero vivió (y lamentablemente murió muy joven) 100 años antes de que existiera un dispositivo de este tipo. existía para que ella lo pirateara de verdad.

Hackear computadoras reales es una cosa, pero hackear intencionalmente computadoras imaginarias es, en estos días, algo que solo podemos imaginar.

¡Feliz día de Ada Lovelace!


Sello de tiempo:

Mas de Seguridad desnuda