Màquina analítica

De la Viquipèdia, l'enciclopèdia lliure
(S'ha redirigit des de: Màquina de ''Babbage'')
La màquina analítica de Babbage, tal com es pot apreciar l'Science Museum de Londres.
La màquina analítica de Babbage, tal com es pot apreciar l'Science Museum de Londres.

La màquina analítica va ser un disseny d'ordinador mecànic de propòsit general ideat pel matemàtic anglès Charles Babbage.[1][2] Va ser descrita per primera vegada el 1837 com la successora de la màquina diferencial de Babbage. La màquina analítica incorporava unitat aritmeticològica, estructura de control i memòria integrada, per la qual cosa és el primer disseny per a un ordinador de propòsit general que podria ser descrit en termes moderns com a Turing complet.[3] En altres paraules, l'estructura lògica de la màquina analítica va ser essencialment la mateixa que la que ha dominat el disseny d'ordinadors en l'era electrònica.[2]

Babbage mai va ser capaç de completar la construcció de qualsevol de les seves màquines a causa de conflictes amb el seu enginyer superior i d'un finançament inadequat.[4][5] No va ser fins a la dècada de 1940 que es van construir realment els primers ordinadors d'ús general, més d'un segle després que Babbage dissenyés la màquina analítica el 1837.[2]

Disseny[modifica]

El primer intent de Babbage en un dispositiu de computació mecànica, la màquina diferencial, va ser una màquina de propòsit especial dissenyat per resoldre logaritmes i funcions trigonomètriques mitjançant l'avaluació de les diferències finites per crear polinomis aproximats. La construcció d'aquesta màquina mai es va completar; Babbage tenia conflictes amb el seu enginyer superior, Joseph Clement, i en última instància, el govern britànic va retirar el finançament per al seu projecte.[6][7]

Durant aquest projecte, es va adonar que un disseny molt més general, la màquina analítica, era possible. El treball en el disseny de la màquina analítica va començar el 1835.

L'entrada, que consisteix en programes i dades havia de ser proporcionada a la màquina a través de targetes perforades, un mètode que s'utilitzava en el moment de dirigir telers mecànics, com el teler de Jacquard. Per a la sortida, la màquina tindria una impressora, un traçador de corba i una campana. La màquina també seria capaç de perforar els nombres en les targetes per a ser llegides més tard. Va utilitzar aritmètica de punt fix en base 10. 

Dos tipus de targetes perforades usades per programar la màquina. Davant: 'cartes d'operació' per instruccions. Radere: 'cartes de variable' per dades d'entrada.

Hi havia una memòria capaç d'emmagatzemar 1.000 nombres de 40 dígits decimals cadascun (aproximadament 16,2 kB). Una unitat aritmètica (el "molí") seria capaç de realitzar les quatre operacions aritmètiques, a més de les comparacions i, opcionalment, arrels quadrades. Inicialment (1838) va ser concebut com la màquina diferencial corbada sobre si mateixa, en una disposició circular, amb la memòria principal que sortia a un costat. Dibuixos posteriors (1858) mostren un disseny de quadrícula regular.[8] Igual que la unitat central de processament (CPU) d'un ordinador modern, el molí es basaria en els seus propis procediments interns per a ser emmagatzemada en forma de clavilles inserides en tambors giratoris anomenats "barrils", per dur a terme algunes de les instruccions més complexes del programa d'usuari.[4]

El llenguatge de programació a utilitzar pels usuaris era similar als llenguatges d'assembladors moderns. Els bucles i les bifurcacions condicionals eren possibles, i per tant el llenguatge utilitzat hauria estat Turing complet com definiria més endavant Alan Turing. S'utilitzaven tres tipus diferents de targetes perforades: una per a operacions aritmètiques, una per a constants numèriques, i un altre per a les operacions de càrrega i emmagatzematge, que transferia nombres de la memòria cap a la unitat aritmètica o al revés. Hi havia tres lectors separats per als tres tipus de targetes. Babbage va desenvolupar unes dues dotzenes de programes per a la màquina analítica entre 1837 i 1840, i un programa més endavant. Aquests programes tractaven polinomis, fórmules iteratives, el mètode de reducció de Gauss, i els nombres de Bernoulli.

El 1842, el matemàtic italià Luigi Federico Menabrea va publicar una descripció de la màquina basat en una conferència de Babbage en francès. El 1843, la descripció va ser traduïda a l'anglès i ampliada per Ada Lovelace, qui s'havia interessat en la màquina vuit anys abans. En reconeixement a les seves ampliacions a la publicació de Menabrea, que incloïa una forma de calcular els nombres de Bernoulli utilitzant la màquina, ha estat reconeguda com la primera programadora.

Construcció[modifica]

En els últims de la seva vida, Babbage va buscar maneres de construir una versió simplificada de la màquina, i en muntà una petita part abans de la seva mort el 1871.[4]

El 1878, un comitè de la British Ass Museum va construir una màquina diferencial de Babbage completa, un disseny que incorporava refinaments que Babbage havia descobert durant el desenvolupament de la màquina analítica. Aquesta màquina va ser construïda amb materials i tolerància de fabricació que haurien estat a disposició de Babbage, la qual cosa es contraposa amb el suggeriment que els dissenys de Babbage no podrien haver estat construïts utilitzant la tecnologia de fabricació del seu temps.[9]

A l'octubre de 2010, el programadoociation for the Advancement of Science va descriure la màquina analítica com "una meravella de l'enginyeria mecànica" però va recomanar no construir-la. El comitè va reconèixer la utilitat i el valor de la màquina, però no es va poder estimar el cost de la seva construcció, i no estaven segurs de si la màquina podria funcionar després d'haver estat construïda.[10][11]

El 1910, el fill de Charles Babbage, Henry Prevost Babbage va informar que una part del molí i l'aparell d'impressió s'havien construït, i que havien estat utilitzats per calcular una llista (defectuosa) de múltiples de pi. Això constitueïa només una petita part de tota la màquina; no era programable i no tenia memòria. Henry també va proposar la construcció d'una versió de demostració de la màquina completa, amb una capacitat d'emmagatzematge més petita.[12] Una versió d'aquest tipus podria manipular 20 nombres de 25 dígits cadascun. "És només una qüestió de targetes i de temps", va escriure Henry Babbage el 1888, "... i no hi ha cap raó per la qual les (vint mil) targetes no han d'usar-se si cal, en una màquina analítica per propòsits matemàtics".[12]

Molí de la màquina analítica construït per Henry el 1910, al Museu de la Ciència a Londres.

El 1991, el London Sciencer anglès John Graham-Cumming va començar una campanya per recaptar fons mitjançant la "subscripció popular" per permetre un estudi històric i acadèmic seriós sobre els plans de Babbage, amb la vista posada en construir i provar un disseny virtual complet del treball que després permetria la construcció de la màquina analítica física.[13][14] Al maig de 2016, la construcció de la màquina no s'havia ni intentat, ja que no es comprenien clarament els dibuixos originals del disseny de Babbage.[15]

Conjunt d'instruccions[modifica]

No es coneix cap descripció explícita feta per Babbage del conjunt d'instruccions de la màquina. Enlloc d'un manual, mostrava els seus programes com llistes d'estats durant l'execució, mostrant quina operació era executada a cada pas amb poques indicacions sobre com aniria el flux de control.

Allan G. Bromley va assumir que les targetes podien llegir-se endavant o enredera en funció d'una condició, que faria la màquina Turing-completa.

...les targetes es podrien moure endavant o endarrere (i d'aquí el loop)...[16]

La introducció per primer cop, el 1845, d'operacions d'usuari per una varietat de funcions incloent, sobretot, un sistema efectiu per controlar loops dels programes per part de l'usuari. No hi ha indicació de com s'especifica la direcció de girar la operació i les targetes de variables. En absència d'altre evidència he adoptat la assumpció mínima de que tant l'operació com les targetes de variable només es poden moure endarrere per què és necessari per implementar els loops usats en els programes d'exemple escrits per Babbage. No hi hauria cap dificultat mecànica o de microprogramació per controlar el sentit de lectura per part de l'usuari.[17]

En el seu emulador de la màquina, Fourmilab diu:

El lector de targetes de la màquina no està limitat a un simplement processar les targetes en una cadena una radere d'altre de principi a final. Pot ser controlat per les mateixes targetes si la palanca del molí està activada, avançar la pila de targetes endavant, saltant la targeta o endarrere, causant que la targeta anterior sigui processada de nou.

Influència[modifica]

La màquina analítica incompleta va ser posada en exhibició al públic en l'Exposició Universal de 1862 a South Kensington, Londres.[18]

Els enginyers suecs Georg i Edvard Scheutz, inspirats en una descripció de la màquina diferencial, van crear un dispositiu de càlcul mecànic basat en el disseny de la màquina el 1853. El dispositiu era capaç de calcular taules, però de manera imperfecta.[5][19]

A partir de 1872 Henry Babbage va seguir diligentment amb el treball del seu pare i després de manera intermitent durant la seva retirada a partir del 1875.[20] Percy Ludgate va escriure sobre la màquina el 1915 i va arribar a dissenyar la seva pròpia màquina analítica (que va ser elaborada en detall, però mai construïda). La màquina del Ludgate seria molt més petita que la de Babbage en aproximadament 230 litres i hipotèticament seria capaç de multiplicar dos nombres de 20 dígits decimals en uns sis segons.

Malgrat aquest treball seminal, el treball de Babbage va caure en l'oblit històric, i la màquina analítica era desconeguda per als constructors de màquines electro-mecàniques i de computació electrònica en els anys 1930 i 1940 quan van començar el seu treball, el que va resultar en la necessitat de tornar a inventar moltes de les innovacions de disseny que Babbage ja havia proposat. Howard Aiken, que va construir el calculador electromecànic ràpidament obsolet, el Harvard Mark I, entre 1937 i 1945, va elogiar el treball de Babbage, però no sabia res del disseny de la màquina analítica durant la construcció del seu calculador, i va considerar la seva visita a la part construïda de la màquina analítica "la major decepció de la meva vida". El Mark I no va mostrar cap influència de la màquina analítica i no tenia cap característica de disseny en comú més enllà de la bifurcació condicional. John Presper Eckert i John W. Mauchly tampoc estaven al corrent dels detalls del treball sobre la màquina analítica de Babbage abans de la finalització del seu disseny de la primera computadora electrònica de propòsit general, l'ENIAC.

Comparació amb altres ordinadors primerencs[modifica]

Si la màquina analítica hagués estat construïda, hauria estat digital, programable i Turing complet. Luigi Federico Menabrea va informar en el croquis de la màquina analítica: "El Sr. Babbage creu que pot, per la seva màquina, formar el producte de dos nombres, cadascun amb vint dígits, en tres minuts". En comparació, el Harvard Mark I podria realitzar la mateixa tasca en tan sols sis segons. Un PC modern pot fer el mateix en menys d'una milionèsima de segon. Cal assenyalar però, que la màquina analítica de Babbage va ser descrita més de cent anys abans que qualsevol dels dispositius computacionals abans esmentats i per tant, no és d'estranyar que fos molt més lenta.

Nom Primera operació Sistema numèric Mecanisme de computació Programari Turing complet Memòria
Màquina diferencial No construïda fins als 1990 Decimal Mecànic No programable; les constants numèriques inicials de diferències polinòmiques es configuren físicament No Rodes als eixos
Màquina analítica No construïda encara Decimal Mecànic Targetes perforades Rodes als eixos
Bombe (Polònia, Regne Unit, EUA) 1939 (Polònia), març 1940 (Regne Unit), maig 1943 (EUA) Caràcter Electromecànic No programable; els paràmetres d'entrada de xifrat s'especifiquen per cables de connexió No Rotors
Zuse Z3 (Alemanya) Maig 1941 Binari 

Coma flotant

Electromecànic Pel·lícula de 35mm Desconegut, en principi sí Relés mecànics
Atanasoff Berry Computer (EUA) 1942 Binari Electrònic No programable; sistema lineal d'entrada de coeficients utilitzant targetes perforades No Condensador de memòria regenerativa
Colossus Mark 1 (Regne Unit) Desembre 1943 Binari Electrònic Cables de connexió i interruptors No Vàlvules termoiòniques (tubs de buit) i tiratrons
Harvard Mark I – IBM ASCC (EUA) Maig 1944 Decimal Electromecànic Cinta de 24 canals perforats No Relés mecànics[21]
Zuse Z4 (Alemanya) Març 1945 (o 1948)[22] Binari

Coma flotant

Electromecànic Pel·lícula de 35mm Relés mecànics
ENIAC (EUA) Juliol 1946 Decimal Electrònic Cables de connexió i interruptors Tríode biestable
SSEM (Manchester Baby) (Regne Unit) 1948 Binari Electrònic Teclat[23] (primera computadora electrònica digital de programa emmagatzemat) Tub Williams

Referències[modifica]

  1. Graham-Cumming, John. «The 100-year leap - O'Reilly Radar». radar.oreilly.com. [Consulta: 27 novembre 2016].
  2. 2,0 2,1 2,2 «The Engines | Babbage Engine | Computer History Museum». www.computerhistory.org. [Consulta: 27 novembre 2016].
  3. Graham-Cumming, John «Let’s build Babbage’s ultimate mechanical computer» (en anglès). New Scientist.
  4. 4,0 4,1 4,2 Robinson, Tim. «Difference Engines». www.meccano.us. [Consulta: 27 novembre 2016].
  5. 5,0 5,1 Weber, A. S.. Nineteenth-Century Science: An Anthology (en anglès). Broadview Press, 2000-03-10. ISBN 9781551111650. 
  6. Lee, John A. N.; Lee, J. A. N.. International Biographical Dictionary of Computer Pioneers (en anglès). Taylor & Francis, 1995. ISBN 9781884964473. 
  7. Balchin, Jon. Science: 100 Scientists who Changed the World (en anglès). Enchanted Lion Books, 2003. ISBN 9781592700172. 
  8. «The Babbage Pages: Calculating Engines». projects.exeter.ac.uk. [Consulta: 27 novembre 2016].
  9. «A Modern Sequel | Babbage Engine | Computer History Museum». www.computerhistory.org. [Consulta: 27 novembre 2016].
  10. Science., British Association for the Advancement of «Report of the British Association for the Advancement of Science.». biodiversitylibrary.org, 48th Meeting (1878), 01-01-1879.
  11. Science, British Association for the Advancement of. «The Analytical Engine». www.fourmilab.ch. [Consulta: 27 novembre 2016].
  12. 12,0 12,1 Babbage, Henry P. «The Analytical Engine». www.fourmilab.ch. [Consulta: 27 novembre 2016].
  13. Fildes, Jonathan «Campaign builds to construct Babbage Analytical Engine» (en anglès). BBC News, 14-10-2010.
  14. «Plan 28: Building Charles Babbage's Analytical Engine». plan28.org. [Consulta: 27 novembre 2016].
  15. «Spring 2016 report to the Computer Conservation Society». blog.plan28.org. [Consulta: 27 novembre 2016].
  16. Bromley, A. G. «Charles Babbage's Analytical Engine, 1838». Annals of the History of Computing, 4, 3, juliol 1982, pàg. 196–217. DOI: 10.1109/MAHC.1982.10028. ISSN: 0164-1239.
  17. Bromley, A. G. «Babbage's Analytical Engine Plans 28 and 28a. The programmer's interface». IEEE Annals of the History of Computing, 22, 4, octubre 2000, pàg. 5–19. DOI: 10.1109/85.887986. ISSN: 1058-6180.
  18. Tongue, Michael. 3D Expo 1862. Discovery, 2006, p. 98. ISBN 9197211826. 
  19. «Charles Babbage facts, information, pictures | Encyclopedia.com articles about Charles Babbage». www.encyclopedia.com. [Consulta: 27 novembre 2016].
  20. «Henry Prevost Babbage - The Babbage Engine | Computer History Museum», 20-02-2011. Arxivat de l'original el 2011-02-20. [Consulta: 27 novembre 2016].
  21. «The Mark I Computer at Harvard», 10-07-2015. Arxivat de l'original el 2015-07-10. [Consulta: 27 novembre 2016].
  22. «History of Computers and Computing, Birth of the modern computer, Relays computer, Konrad Zuse». history-computer.com. [Consulta: 27 novembre 2016].
  23. «Manchester Baby Computer». curation.cs.manchester.ac.uk. [Consulta: 27 novembre 2016].

Bibliografia[modifica]

  • Babbage, Charles (1864). "Chapter VIII - Of the Analytical Engine". Passages from the Life of a Philosopher. London: Longman, Green, Longman, Roberts, & Green. pp. 112–141.
  • Babbage, Charles (1889). Babbage, Henry P., ed. Babbage’s Calculating Engines - Being a Collection of Papers Relating to Them; Their History, and Construction (PDF). Nova York: Cambridge University Press. ISBN 978-1-108-00096-3.
  • Bromley, Allan G. (July–September 1982). "Charles Babbage's Analytical Engine, 1838" (PDF). IEEE Annals of the History of Computing. 4 (3): 197–217. doi:10.1109/mahc.1982.10028.
  • Bromley, Allan G. (1990). "Difference and Analytical Engines" (PDF). In Aspray, William. Computing Before Computers. Ames: Iowa State University Press. pp. 59–98. ISBN 0-8138-0047-1.
  • Bromley, Allan G. (October–December 2000). "Babbage's Analytical Engine Plans 28 and 28a-The Programmer's Interface". IEEE Annals of the History of Computing. 22 (4): 5–19. doi:10.1109/85.887986.
  • Cohen, I. Bernard (2000). "8 - Aiken's Background in Computing and Knowledge of Babbage's Machines". Howard Aiken: Portrait of a Computer Pioneer. Cambridge: MIT Press. pp. 61–72. ISBN 9780262531795.
  • Collier, Bruce (1970). The Little Engines That Could've: The Calculating Machines of Charles Babbage (Ph.D.). Harvard University. Retrieved 2015-12-18.
  • Green, Christopher D. (2005). "Was Babbage's Analytical Engine intended to be a mechanical model of the mind?" (PDF). History of Psychology. 8 (1): 35–45. doi:10.1037/1093-4510.8.1.35. Retrieved 2015-12-25.
  • Hyman, Anthony (1982). Charles Babbage: A Biography. Oxford: Oxford University Press. ISBN 9780198581703.
  • Menabrea, Luigi FedericoLovelace, Ada (1843). "Sketch of the Analytical Engine invented by Charles Babbage... with notes by the translator. Translated by Ada Lovelace". In Richard Taylor. Scientific Memoirs. 3. London: Richard and John E. Taylor. pp. 666–731.
  • Randell, Brian (October–December 1982). "From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush" (PDF). IEEE Annals of the History of Computing. 4 (4).
  • Wilkes, Maurice Vincent (1971). "Babbage as a Computer Pioneer". Proc. Babbage Memorial Meeting. London: British Computer Society. pp. 415–440.