0b10

La historia de la fundación de Microsoft es uno de los episodios más famosos de la historia de la informática. En 1975, Paul Allen voló a Albuquerque para demostrar el intérprete BASIC que él y Bill Gates habían escrito para el microordenador Altairm. Como ninguno de los dos tenía un Altair en funcionamiento, Allen y Gates probaron su intérprete utilizando un emulador que escribieron y ejecutaron en el sistema informático de Harvard. El emulador se basaba únicamente en las especificaciones publicadas para el procesador Intel 8080. Cuando Allen finalmente ejecutó su intérprete en un Altair real -frente a la persona que él y Gates esperaban que comprara su software- no tenía ni idea de si funcionaría. Pero lo hizo. Al mes siguiente, Allen y Gates fundaron oficialmente su nueva empresa.

Más de un siglo antes de que Allen y Gates escribieran su intérprete BASIC, AdaLovelace escribió y publicó un programa de ordenador. Ella también escribió un programa para un ordenador que sólo le habían descrito. Pero su programa, a diferencia del intérprete BASIC de Microsoft, nunca se ejecutó, porque el ordenador al que se dirigía nunca se construyó.

El programa de Lovelace se suele denominar el primer programa informático del mundo. No todo el mundo está de acuerdo en llamarlo así. Resulta que el legado de Lovelace es uno de los temas más debatidos de la historia de la informática. Walter Isaacson ha escrito que la disputa sobre el alcance y el mérito de sus contribuciones constituye una «especialidad académica menor».1 Inevitablemente, el hecho de que Lovelace fuera una mujer ha convertido esta disputa en algo cargado. Los historiadores han citado todo tipo de pruebas primarias para argumentar que el crédito otorgado a Lovelace es apropiado o inmerecido. Pero parecen dedicar menos tiempo a explicar los detalles técnicos de sus escritos publicados, lo cual es lamentable, porque los detalles técnicos son la parte más fascinante de la historia. ¿Quién no querría saber exactamente cómo se supone que funciona un programa escrito en 1843?

Para ser justos, el programa de Lovelace no es fácil de explicar a los profanos en la materia sin necesidad de hacer aspavientos. Sin embargo, son las complejidades de su programa las que lo hacen digno de mención. Independientemente de que se la conozca como «la primera programadora», su programa se especificó con un grado de rigor que superó con creces todo lo anterior. Pensó cuidadosamente en cómo organizar las operaciones en grupos que pudieran repetirse, inventando así el bucle. Se dio cuenta de lo importante que era seguir el estado de las variables a medida que cambiaban, introduciendo anotaciones para ilustrar esos cambios. Como programador, me sorprende ver cuánto de lo que hacía Lovelace se parece a la experiencia de escribir software hoy en día.

Así que echemos un vistazo más de cerca al programa de Lovelace. Lo diseñó para calcular los números de Bernoulli. Para entender qué son, tenemos que retroceder un par de milenios hasta la génesis de uno de los problemas más antiguos de las matemáticas.

Suma de potencias

Los pitagóricos vivían a orillas del Mediterráneo y adoraban los números. Uno de sus pasatiempos era hacer triángulos con guijarros.

Un guijarro seguido de una fila de dos guijarros hace un triángulo que contiene tres guijarros. Añade otra fila de tres guijarros y obtienes un triángulo que contiene seis guijarros. Puedes continuar así, añadiendo cada vez una fila con un guijarro más que la fila anterior. Un triángulo con seis filas contiene 21 guijarros. Pero, ¿cuántos guijarros contiene un triángulo con 423 filas?

Lo que los pitagóricos buscaban era una forma de calcular lo siguientesin hacer todas las sumas:

Finalmente se dieron cuenta de que, si se colocan dos triángulos del mismo tamaño uno frente al otro de manera que formen un rectángulo, se puede encontrar el área del mismo y dividir por dos para obtener el número de guijarros en cada uno de los triángulos:

Arquímedes exploró más tarde un problema similar. Se interesó por la siguiente serie:

Se puede visualizar esta serie imaginando una pila de cuadrados progresivamente más grandes (hechos de pequeños cubos), uno encima de otro, formando una pirámide.Arquímedes quería saber si había una manera fácil de saber cuántos cubos se necesitarían para construir una pirámide con, digamos, 423 niveles. Registró una solución que también permite una interpretación geométrica.2

Tres pirámides pueden encajarse para formar un prisma rectangular con una pequeña extrusión de un cubo de altura en un extremo. Esa pequeña extrusión resulta ser un triángulo que obedece a las mismas reglas que los pitagóricos usaron para hacer sus triángulos de piedras. (Este vídeo puede ser una explicación más útil de lo que quiero decir.) Así que el volumen de la forma completa viene dado por la siguiente ecuación:

Sustituyendo la ecuación pitagórica por la suma de los nueve primeros números y haciendo un poco de álgebra, se obtiene esto:

En el año 499, el matemático y astrónomo indio Aryabhata publicó una obra conocida como Aryabhatiya, que incluía una fórmula para calcular la suma de cubos:

Una fórmula para la suma de los primeros n enteros positivos elevados a la cuarta potencia no se publicó hasta dentro de 500 años.3

En este punto te estarás preguntando si existe un método general para hallar la suma de los n primeros enteros elevados a la kª potencia.Los matemáticos también se lo preguntaban. Johann Faulhaber, matemático alemán y numerólogo un poco chiflado, fue capaz de calcular fórmulas para sumas de números enteros hasta la potencia 17, que publicó en 1631. Blaise Pascal esbozó finalmente un método general en 1665, aunque dependía de que se supiera primero cómo calcular la suma de enteros elevados a cada potencia menor5. Para calcular la suma de los primeros n enteros positivos elevados a la sexta potencia, por ejemplo, primero habría que saber cómo calcular la suma de los primerosn enteros positivos elevados a la quinta potencia.

Una solución general más práctica se expuso en la obra publicada póstumamente del matemático suizo Jakob Bernoulli, que murió en 1705. Bernoulli comenzó dando las fórmulas para calcular las sumas de los primeros n enteros positivos a la primera, segunda y tercera potencia.6 Estas fórmulas las dio en forma de polinomio, de modo que se parecían a las siguientes:

Usando el triángulo de Pascal, Bernoulli se dio cuenta de que estos polinomios seguían un patrón predecible. Esencialmente, Bernoulli descompuso los coeficientes de cada término en dos factores, uno de los cuales podía determinar utilizando el Triángulo de Pascal y el otro que podía derivar de la interesante propiedad de que todos los coeficientes del polinomio parecían sumar siempre uno. Averiguar el exponente que debía asignarse a cada término no era un problema, ya que también seguía un patrón predecible. El factor de cada coeficiente que había que calcular utilizando la regla de la suma a uno formaba una secuencia que se conoció como los números de Bernoulli.

El descubrimiento de Bernoulli no significaba que ahora fuera trivial calcular la suma de los primeros n enteros positivos a cualquier potencia. Para calcular la suma de los primeros n enteros positivos elevados a la kª potencia, sería necesario conocer cada número de Bernoulli hasta el kº número de Bernoulli. Cada número de Bernoulli sólo puede calcularse si se conocen los números de Bernoulli anteriores. Pero calcular una larga serie de números de Bernoulli era significativamente más fácil que derivar cada fórmula de suma de potencias a su vez, por lo que el descubrimiento de Bernoulli fue un gran avance para las matemáticas.

Babbage

Charles Babbage nació en 1791, casi un siglo después de la muerte de Bernoulli. Siempre he tenido la vaga idea de que Babbage diseñó pero no construyó un ordenador mecánico. Pero nunca he entendido del todo cómo debía funcionar ese ordenador. Las ideas básicas, como sucede, no son tan difíciles de entender, lo que es una buena noticia. El programa de Lovelace fue diseñado para ejecutarse en una de las máquinas de Babbage, así que tenemos que hacer otro rápido desvío aquí para hablar de cómo funcionaban esas máquinas.

Babbage diseñó dos máquinas de computación mecánicas distintas. Su primera máquina se llamaba Máquina Diferencial. Antes de la invención de la calculadora de bolsillo, la gente se basaba en tablas logarítmicas para calcular el producto de números grandes. (Hay un buen vídeo de Numberphile sobre cómo se hacía esto). Las tablas logarítmicas grandes no son difíciles de crear, al menos conceptualmente, pero el gran número de cálculos que hay que hacer para crearlas significaba que en la época de Babbage a menudo contenían errores. Babbage, frustrado por ello, trató de crear una máquina que pudiera tabular logaritmos mecánicamente y, por tanto, sin errores.7

La Máquina Diferencial no era un ordenador, porque todo lo que hacía era sumar y restar. Aprovechaba un método ideado por el matemático francés Gaspard de Prony que descomponía el proceso de tabulación de logaritmos en pequeños pasos.8 Estos pequeños pasos sólo implicaban sumas y restas, lo que significaba que se podía emplear un pequeño ejército de personas sin ninguna aptitud o formación matemática especial para producir una tabla. El método de De Prony, conocido como el método de las diferencias divididas, podía utilizarse para tabular cualquier polinomio, que a su vez podía utilizarse para aproximar funciones logarítmicas y trigonométricas.

Para tener una idea de cómo funcionaba este proceso, considere la siguiente función polinómica simple:

El método de las diferencias divididas implica encontrar la diferencia entre cada valor sucesivo de y para diferentes valores de x. A continuación, se encuentran las diferencias entre estas diferencias, y posiblemente las diferencias entre esas mismas diferencias siguientes, hasta que aparece una diferencia constante. Estas diferencias se pueden utilizar para obtener el siguiente valor del polinomio simplemente sumando.

Debido a que el polinomio anterior es sólo un polinomio de segundo grado, somos capaces de encontrar la diferencia constante después de sólo dos columnas de diferencias:

x y Diferencia 1 Diferencia 2
1 2
2 5 3
3 10 5 2
4 17 7 2
5 ? ? 2

Ahora, como sabemos que la constante de diferencia es 2, podemos encontrar el valor dey cuando x es 5 mediante la suma solamente. Si sumamos 2 a 7, la última entrada de la columna «Diff 1», obtenemos 9. Si sumamos 9 a 17, la última entrada de la columna y, obtenemos 26, nuestra respuesta.

La Máquina Diferencial de Babbage tenía, para cada columna de diferencias en una tabla como la anterior, una columna física de engranajes. Cada engranaje era un dígito decimal y una columna entera era un número decimal. La Máquina Diferencial tenía ocho columnas de engranajes, por lo que podía tabular un polinomio hasta el séptimo grado. Las columnas se ajustaban inicialmente con valores que coincidían con una primera fila de la tabla de diferencias, elaborada de antemano. Un operador humano hacía girar un eje de manivela, haciendo que la diferencia constante se propagara a través de la máquina a medida que los valores indicados en cada columna se añadían a la siguiente.

Babbage fue capaz de construir una pequeña sección de la Máquina Diferencial y utilizarla para demostrar sus ideas en las fiestas.9 Pero incluso después de gastar una cantidad de dinero público equivalente al coste de dos grandes buques de guerra, nunca construyó la máquina completa.10 Babbage no pudo encontrar a nadie a principios del siglo XIX que pudiera hacer el número de engranajes que necesitaba con suficiente precisión. Una máquina diferencial que funcionara no se construiría hasta la década de 1990, tras la llegada del mecanizado de precisión. Hay un gran vídeo en YouTube que muestra una máquina diferencial en funcionamiento prestada al Museo de Historia de la Computación en Mountain View, que vale la pena ver incluso sólo para escuchar los maravillosos sonidos que hace la máquina mientras funciona.

Babbage finalmente perdió el interés en la máquina diferencial cuando se dio cuenta de que se podía construir una máquina mucho más potente y flexible. Su Máquina Analítica fue la máquina que hoy conocemos como el ordenador mecánico de Babbage. La Máquina Analítica se basaba en las mismas columnas de engranajes utilizadas en la Máquina Diferencial, pero mientras la Máquina Diferencial sólo tenía ocho columnas, la Máquina Analítica debía tener muchos cientos más. La máquina analítica podía programarse con tarjetas perforadas, como un telar de Jacquard, y podía multiplicar y dividir, así como sumar y restar. Para realizar una de estas operaciones, una sección de la máquina llamada «molino» se reorganizaba en la configuración apropiada, leía los operandos de otras columnas utilizadas para el almacenamiento de datos y luego escribía el resultado en otra columna.

Babbage llamó a su nueva máquina la Máquina Analítica porque era lo suficientemente potente como para hacer algo parecido al análisis matemático. La Máquina Diferencial podía tabular un polinomio, pero la Máquina Analítica sería capaz de calcular, por ejemplo, los coeficientes de la expansión polinómica de otra expresión. Era una máquina increíble, pero el gobierno británico se negó sabiamente a financiar su construcción. Así que Babbage viajó a Italia para intentar conseguir apoyo para su idea.

Notas de El Traductor

En Turín, Babbage conoció al ingeniero italiano y futuro primer ministro LuigiMenabrea. Persuadió a Menabrea para que escribiera un esquema de lo que podría lograr la Máquina Analítica. En 1842, Menabrea publicó un artículo sobre el tema en francés. Al año siguiente, Lovelace publicó una traducción del documento de Menabrea al inglés.

Lovelace, conocida entonces como Ada Byron, conoció a Babbage en una fiesta en 1833, cuando ella tenía 17 años y él 41.11 Lovelace estaba fascinada con la Máquina de Diferencias de Babbage. Además, podía entender su funcionamiento, ya que había recibido muchas clases de matemáticas durante su infancia. Su madre, Annabella Milbanke, había decidido que una base sólida en matemáticas desterraría la sensibilidad salvaje y romántica que poseía el padre de Lovelace, LordByron, el famoso poeta. Tras conocerse en 1833, Lovelace y Babbage siguieron formando parte del mismo círculo social y se escribían con frecuencia.

Ada Byron se casó con William King en 1835. King se convirtió más tarde en el conde de Lovelace, convirtiendo a Ada en la condesa de Lovelace. Incluso después de tener tres hijos, continuó su educación en matemáticas, empleando a Augustus de Morgan, quien descubrió las leyes de De Morgan, como su tutor.12 Lovelace vio el potencial de la Máquina Analítica de Babbage inmediatamente y estaba dispuesta a trabajar con él para promover la idea. Un amigo le sugirió que tradujera el artículo de Menabrea para un público inglés.13

El artículo de Menabrea ofrecía una breve descripción de cómo funcionaba la Máquina Diferencial, y luego mostraba cómo la Máquina Analítica sería una máquina muy superior. La máquina analítica sería tan potente que podría «formar el producto de dos números, cada uno de los cuales contiene veinte cifras, en tres minutos «14 (énfasis en el original). Menabrea dio otros ejemplos de las capacidades de la máquina, demostrando cómo podía resolver un sistema simple de ecuaciones lineales y expandir el producto de dos expresiones binomiales. En ambos casos, Menabreaproporcionaba lo que Lovelace llamaba «diagramas de desarrollo», en los que se enumeraban estas secuencias de operaciones que debían realizarse para calcular la respuesta correcta.15 Se trataba de programas en el mismo sentido en que el propio programa de Lovelace era un programa y fueron publicados originalmente el año anterior. Pero, como veremos, los programas de Menabrea no eran más que simples ejemplos de lo que era posible.Todos ellos eran triviales en el sentido de que no requerían ningún tipo de ramificación o bucle.

Lovelace adjuntó una serie de notas a su traducción del artículo de Menabrea que, en conjunto, eran mucho más largas que el trabajo original. Fue aquí donde realizó sus principales contribuciones a la computación. En la Nota A, que Lovelace adjuntó a la descripción inicial de Menabrea sobre el motor analítico, Lovelace explicaba con cierta extensión y a menudo con un lenguaje lírico la promesa de una máquina que pudiera realizar operaciones matemáticas arbitrarias. Preveía que una máquina como la máquina analítica no se limitaría a los números y podría actuar sobre cualquier objeto «cuyas relaciones fundamentales mutuas pudieran ser expresadas por las de la ciencia abstracta de las operaciones, y que deberían ser también susceptibles de adaptaciones a la acción de la notación operativa y el mecanismo de la máquina».16 Añadió que la máquina podría algún día, por ejemplo, componer música. Esta intuición era aún más notable si se tiene en cuenta que Menabrea veía la Máquina Analítica principalmente como una herramienta para automatizar la «larga y árida computación», que liberaría las capacidades intelectuales de los científicos brillantes para un pensamiento más avanzado.17 La milagrosa previsión que demostró Lovelace en la Nota A es una de las principales razones por las que se la celebra hoy en día.

La otra nota famosa es la Nota G. Lovelace comienza la Nota G argumentando que, a pesar de sus impresionantes poderes, no se puede decir que la Máquina Analítica realmente «piense». Esta parte de la Nota G es lo que Alan Turing denominaría más tarde «la objeción de LadyLovelace». Sin embargo, continúa Lovelace, la máquina puede hacer cosas extraordinarias. Para ilustrar su capacidad de manejar problemas aún más complejos, Lovelace proporciona su programa de cálculo de los números de Bernoulli.

El programa completo, en el formato ampliado de «diagrama de desarrollo» que Lovelaceexplica en la Nota D, puede verse aquí.El programa es esencialmente una lista de operaciones, especificadas utilizando los símbolos matemáticos habituales. No parece que Babbage o Lovelace llegaran a desarrollar nada parecido a un conjunto de códigos de operaciones para la máquina analítica.

Aunque Lovelace describía un método para calcular la secuencia completa de números de Bernoulli hasta cierto límite, el programa que proporcionó sólo ilustraba un paso de ese proceso. Su programa calculaba un número que llamaba B7, que los matemáticos modernos conocen como el octavo número de Bernoulli. Su programa intentaba resolver la siguiente ecuación:

En lo anterior, cada término representa un coeficiente en la fórmula polinómica para la suma de enteros a una potencia particular. En este caso, esa potencia es el ocho, ya que el octavo número de Bernoulli aparece por primera vez en la fórmula de la suma de enteros positivos a la octava potencia. Los números B y A representan los dos tipos de factores que descubrió Bernoulli. De B1 a B7 son todos los números de Bernoulli diferentes, indexados según la indexación de Lovelace. Los números A0 a A5 representan los factores de los coeficientes que Bernoulli pudo calcular utilizando el triángulo de Pascal. Los valores de A0, A1, A3 y A5 aparecen a continuación. Aquí n representa el índice del número de Bernoulli en la secuencia de números impares de Bernoulli empezando por el primero. El programa de Lovelace utilizaba n = 4.

He creado una traducción del programa de Lovelace a C, que puede ser más fácil de seguir. El programa de Lovelace primero calcula A0 y el producto B1A1. A continuación, entra en un bucle que se repite dos veces para calcular B3A3 y B5A5, ya que se forman según un patrón idéntico. Después de calcular cada producto, se suma con todos los productos anteriores, de modo que al final del programa se ha obtenido la suma completa.

Obviamente, la traducción a C no es una recreación exacta del programa de Lovelace.Declara variables en la pila, por ejemplo, mientras que las variables de Lovelace eran más bien registros. Pero hace evidentes las partes del programa de Lovelace que eran tan clarividentes. El programa C contiene dos bucles while, uno anidado dentro del otro. El programa de Lovelace no tenía exactamente bucles while, pero hacía grupos de operaciones y en el texto de su nota especificaba cuándo debían repetirse. La variable v10, en el programa original y en la traducción a C, funciona como una variable contadora que se decrementa con cada bucle, una construcción con la que cualquier programador estaría familiarizado. De hecho, aparte de la profusión de variables con nombres poco útiles, la traducción a C del programa de Lovelace no parece tan extraña en absoluto.

La otra cosa que vale la pena mencionar rápidamente es que la traducción del programa de Lovelace a C no fue tan difícil, gracias al detalle presente en su diagrama.A diferencia de las tablas de Menabrea, su tabla incluye una columna etiquetada como «Indicación de cambio en el valor de cualquier Variable», lo que hace mucho más fácil seguir la mutación de estado a lo largo del programa. Añade aquí un índice de superíndice a cada variable para indicar los valores sucesivos que tienen. Un superíndice de dos, por ejemplo, significa que el valor que se utiliza aquí es el segundo valor que se ha asignado a la variable desde el comienzo del programa.

¿El primer programador?

Después de traducir el programa de Lovelace a C, pude ejecutarlo en mi propio ordenador. Para mi frustración, seguía obteniendo un resultado erróneo. Después de hacer algunas pruebas, finalmente me di cuenta de que el problema no era el código que había escrito. En su «diagrama de desarrollo», Lovelace da la cuarta operación como v5 / v4. Pero el orden correcto aquí es v4 / v5. Es posible que se trate de un error de composición tipográfica y no de un error en el programa ideado por Lovelace. De todos modos, debe ser el error más antiguo de la informática. Me maravilló que, durante unos diez minutos, sin saberlo, hubiera luchado con este primer error de la historia.

Jim Randall, otro bloguero que ha traducido el programa de Lovelace aPython, ha observado este error de división y otros dos problemas. ¿Qué dice de Ada Lovelace que su programa publicado contenga errores menores? Tal vez demuestre que intentaba escribir no sólo una demostración, sino un programa real. Al fin y al cabo, ¿se puede escribir algo más que programas de juguete si no se escriben también muchos errores?

Un artículo de Wikipedia llama a Lovelace la primera en publicar un «programa complejo».18 Tal vez esa sea la forma correcta de pensar en el logro de Lovelace. Menabrea publicó «diagramas de desarrollo» en su artículo un año antes de que Lovelace publicara su traducción. Babbage también escribió más de veinte programas que nunca publicó.19 Así que no es del todo exacto decir que Lovelace escribió o publicó el primer programa, aunque siempre hay espacio para discutir sobre lo que constituye exactamente un «programa». Aun así, el programa de Lovelace estaba muy por delante de todo lo que se había publicado antes. El programa más largo que presentó Menabrea tenía 11 operaciones y no contenía bucles ni bifurcaciones; el programa de Lovelace contiene 25 operaciones y un bucle anidado (y, por tanto, bifurcaciones). Menabrea escribió lo siguiente hacia el final de su trabajo:

Cuando se haya construido el motor, la dificultad se reducirá a la elaboración de las tarjetas; pero como éstas no son más que la traducción de fórmulas algebraicas, será fácil, mediante alguna notación sencilla, ceder su ejecución a un obrero.20

Ni Babbage ni Menabrea estaban especialmente interesados en aplicar la Máquina Analítica a problemas que fueran más allá de los retos matemáticos inmediatos que llevaron a Babbage a construir máquinas de calcular. Lovelace vio que la máquina analítica era capaz de mucho más de lo que Babbage o Menabrea podían imaginar. Lovelace también comprendió que «la fabricación de las tarjetas» no sería una mera ocurrencia posterior y que podía hacerse bien o mal. Esto es difícil de apreciar sin entender su programa de la Nota G y ver por sí mismo el cuidado que puso en su diseño. Pero una vez hecho esto, puedes estar de acuerdo en que Lovelace, aunque no fuera la primera programadora, fue la primera programadora que merecía el título.

Si te ha gustado este post, ¡hay más como este cada cuatro semanas! Sigue a @TwoBitHistory en Twitter o suscríbete al feed RSS para asegurarte de que sabes cuándo sale un nuevo post.

Anteriormente en TwoBitHistory…

El post de esta semana: ¡Paralizando el prestigioso pedigrí de Vim!https://t.co/1YUszI5dIC

– TwoBitHistory (@TwoBitHistory) August 5, 2018

  1. Walter Isaacson, Los innovadores (Nueva York: Simon & Schuster Paperbacks, 2015), 25.

  2. Janet Beery, «Sumas de potencias de números enteros positivos: Archimedes», Mathematical Association of America, consultado el 18 de agosto de 2018, https://www.maa.org/press/periodicals/convergence/sums-of-powers-of-positive-integers-archimedes-287-212-bce-greece-italy.

  3. Janet Beery, «Sums of Powers of Positive Integers: Abu Ali Al-Hasan Ibn Al-Hasan Ibn Al-Haytham», Mathematical Association of America, consultado el 18 de agosto de 2018, https://www.maa.org/press/periodicals/convergence/sums-of-powers-of-positive-integers-abu-ali-al-hasan-ibn-al-hasan-ibn-al-haytham-965-1039-egypt.

  4. Janet Beery, «Sums of Powers of Positive Integers: Conclusión», Mathematical Association of America, consultado el 18 de agosto de 2018, https://www.maa.org/press/periodicals/convergence/sums-of-powers-of-positive-integers-conclusion.

  5. Janet Beery, «Sums of Powers of Positive Integers: Blaise Pascal», Mathematical Association of America, consultado el 18 de agosto de 2018, https://www.maa.org/press/periodicals/convergence/sums-of-powers-of-positive-integers-blaise-pascal-1623-1662-france.

  6. Janet Beery, «Sums of Powers of Positive Integers: Jakob Bernoulli», Mathematical Association of America, consultado el 18 de agosto de 2018, https://www.maa.org/press/periodicals/convergence/sums-of-powers-of-positive-integers-jakob-bernoulli-1654-1705-switzerland.

  7. Isaacson, 19.

  8. Isaacson, 20.

  9. Robert Scoble, «A Demo of Charles Babbage’s Difference Engine», YouTube, 17 de junio de 2010, consultado el 18 de agosto de 2018, https://www.youtube.com/watch?v=BlbQsKpq3Ak&feature=youtu.be&t=7m37s.

  10. Isaacson, 22.
  11. Isaacson, 8.

  12. Isaacson, 17.

  13. Isaacson, 25.

  14. Luigi Menabrea, «Sketch of the Analytical Engine», Scientific Memoirs 3 (1843): 686, consultado el 18 de agosto de 2018, https://books.google.com/books/about/Scientific_Memoirs_Selected_from_the_Tra.html?id=qsY-AAAAYAAJ.

  15. Ada Lovelace, «Translator’s Notes to M. Menabrea’s Memoir», Scientific Memoirs 3 (1843): 712, consultado el 18 de agosto de 2018, https://books.google.com/books/about/Scientific_Memoirs_Selected_from_the_Tra.html?id=qsY-AAAAYAAJ.

  16. Lovelace, 694.

  17. Menabrea, 690.

  18. «Número de Bernoulli», Wikipedia, consultado el 18 de agosto de 2018, https://en.wikipedia.org/wiki/Bernoulli_number

    Isaacson, 29.

  19. Menabrea, 689.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *