Storia dell'informatica

Da Wikipedia, l'enciclopedia libera.

La storia dell'informatica è la storia della scienza applicata che si occupa del trattamento dell'informazione mediante procedure automatizzabili. L'informatica ha origini molto antiche, in quanto meccanismi per automatizzare il trattamento dei dati e delle operazioni aritmetiche erano noti già ai babilonesi intorno al X secolo a.C., in India e in Cina forse addirittura prima. L'informatica in senso moderno, però, nasce soprattutto dal lavoro di precursori quali Pascal e Gottfried Leibniz, iniziatori come Babbage, Ada Lovelace, Zuse, Atanasoff, Alan Turing, Stibitz e Howard Aiken, creatori dei primi progetti computazionali di vasto respiro come de Finetti, von Neumann e Wiener.

Origini[modifica | modifica wikitesto]

Magnifying glass icon mgx2.svgLo stesso argomento in dettaglio: Cronologia dei computer fino al 1950.

Antichità[modifica | modifica wikitesto]

Una ricostruzione della macchina di Anticitera (circa 150-100 a.C.), il più antico calcolatore meccanico conosciuto. Era in grado di calcolare la posizione dei corpi celesti.

Il più antico strumento conosciuto usato per la computazione fu l'abaco che, preso gli antichi popoli (babilonesi, cinesi, greci, romani), era una tavoletta con scanalature numerate contenenti pietruzze mobili, opportunamente disposte per poter eseguire i calcoli.[1] Dai tipi più antichi e da quelli medievali deriva l'abaco a palline infilate su bacchette di legno o fili metallici, detto pallottoliere, che serve per conteggi elementari.[1] Il suan-pa, o abaco cinese, è ancora in uso presso i popoli dell'Estremo Oriente.[1]

Nel I millennio a.C. vennero inventati in Cina i primi sistemi con differenziale.[2] Sono stati ritrovati nei carri risalenti a questo periodo.[2]

Nel V secolo a.C., nell'antica India, il grammatico Pāṇini formulò la grammatica del sanscrito in 3959 regole nell'opera Aṣṭādhyāyī, che è altamente sistematizzata e tecnica. Pāṇini impiegò metaregole, trasformazioni e ricorsioni.[3]

La macchina di Anticitera, nota anche come meccanismo di Antikythera, è il più antico calcolatore meccanico conosciuto, datato tra il 150 e il 100 a.C.[4] o, secondo ipotesi più recenti, al 250 a.C.[5][6] Si trattava di un sofisticato planetario, mosso da ruote dentate, che serviva per calcolare il sorgere del sole, le fasi lunari, i movimenti dei cinque pianeti allora conosciuti, gli equinozi, i mesi, i giorni della settimana e ‒ secondo uno studio pubblicato su Nature[7] ‒ le date dei giochi olimpici.

Il contributo medievale islamico[modifica | modifica wikitesto]

Dispositivi analogici meccanici per la computazione apparvero di nuovo un millennio dopo, nel mondo medievale islamico grazie agli astronomi arabi, come l'astrolabio meccanico di Abū Rayhān al-Bīrūnī[8], e il torqueto di Jabir ibn Aflah[9]. Secondo Simon Singh, i matematici arabi diedero anche importanti contributi alla crittografia, basti pensare allo sviluppo della crittoanalisi e dell'analisi delle frequenze da parte di Al-Kindi.[10][11] Furono inventate dagli ingegneri arabi anche alcune macchine programmabili, come il flauto automatico dei fratelli Banū Mūsā[12], o gli automi e l'orologio che usava la perdita di peso di una candela accesa per tenere traccia del tempo, da parte di Ibn al-Razzas al-Jazari[13]. Manufatti tecnologici di complessità simile apparvero nell'Europa del XIV secolo, come gli orologi astronomici meccanici.

Prime calcolatrici meccaniche[modifica | modifica wikitesto]

Gottfried Wilhelm Leibniz

Da quando i logaritmi vennero introdotti all'inizio del XVII secolo (quando lo scozzese Nepero pubblicò le prime Tavole dei logaritmi[1]), seguì un periodo di considerevole progresso nella strumentazione per il calcolo automatico, grazie a inventori e scienziati.

Nel 1623 Wilhelm Schickhard progettò una macchina calcolatrice, ma abbandonò il progetto quando il prototipo che aveva iniziato a costruire viene distrutto da un incendio nel 1624.[14] All'incirca nel 1640, Blaise Pascal, un eminente matematico francese, costruì la Pascalina, un dispositivo meccanico basato su un progetto del matematico greco Erone di Alessandria.[15] In seguito, nel 1672, Gottfried Wilhelm Leibniz inventò la Stepped Reckoner, che completa nel 1694.[16]

Nel 1702, Leibniz sviluppò la logica come disciplina matematica e formale, con i suoi scritti sul sistema numerico binario. Nel suo sistema, l'uno e lo zero rappresentano i valori vero e falso o gli stati on e off. Ma ci vorrà più di un secolo affinché George Boole pubblichi la propria algebra booleana nel 1854[17], creando un sistema nel quale è possibile trattare ogni relazione logica attraverso l'utilizzo di formule algebriche[18]. Le operazioni (come l'addizione, la sottrazione e la moltiplicazione) vengono sostituite da operazioni logiche con valori di congiunzione, disgiunzione e negazione, mentre gli unici numeri utilizzati, 1 e 0, assumono rispettivamente i significati di vero e falso.[18]

Da questo momento, saranno inventati i primi dispositivi meccanici guidati da un pattern binario. La Rivoluzione industriale spinse in avanti la meccanizzazione di molte attività, e fra queste vi era la tessitura. Le schede perforate controllavano il telaio di Joseph Marie Jacquard nel 1801, dove un buco nella scheda indicava un uno binario e di conseguenza un punto non perforato indicava lo zero binario. Il telaio di Jacquard era molto distante da un moderno calcolatore, ma dimostrava che le macchine potevano essere guidate da sistemi binari.[17]

Charles Babbage e Ada Lovelace[modifica | modifica wikitesto]

Ada Lovelace

Charles Babbage è spesso riconosciuto come uno dei primi pionieri della computazione automatica. Babbage ideò una macchina per il calcolo automatico di grande complessità, la macchina differenziale, che riuscì a realizzare tra mille difficoltà, anche per i limiti della meccanica del tempo. Grazie a un metodo detto delle differenze, particolarmente adatto ad essere espresso in termini meccanici, Babbage creò un sistema per l'esecuzione automatica dei calcoli necessari per la compilazione delle tavole matematiche.[19]

Ideò poi, partendo dalle schede perforate del francese Jacquard[19], una nuova macchina, la macchina analitica: per essa, identificò un'unità di calcolo numerico (noi diremmo un processore), una unità di controllo dell'esecuzione, una memoria per conservare i risultati intermedi e un dispositivo di uscita per visualizzare il risultato del calcolo.

La sua assistente, Ada Lovelace Byron, figlia del poeta inglese George Byron, ideò un metodo per la programmazione della macchina, almeno a livello teorico, ed è per questo considerata la prima programmatrice della storia (l'articolo fu pubblicato nel 1843).[19] In suo onore, negli anni Ottanta del XX secolo, fu creato un linguaggio di programmazione chiamato ADA.

La macchina analitica di Babbage non fu mai completata per mancanza di fondi.[19] Una strada, però, era stata aperta, anche se sarà solo con l'avvento dell'elettronica che la rivoluzione del calcolo automatico, iniziata 2300 anni prima, diventerà un fenomeno planetario.

Alan Turing e la macchina di Turing[modifica | modifica wikitesto]

Alan Turing

Alan Turing è celebre per aver contribuito in modo decisivo, durante la Seconda guerra mondiale, all'impresa di decifrare i messaggi in codice utilizzati dai tedeschi con la loro macchina Enigma.[13] Ma questa sua attività ha finito per mettere in ombra il suo fondamentale ruolo di padre dell'informatica, in un periodo in cui questa disciplina non aveva ancora un nome e gli elaboratori eseguivano compiti appena superiori a quelli di una calcolatrice da tavolo.

Concentrando le sue ricerche sulla "computabilità", cioè la valutazione della possibilità di far eseguire determinate operazioni a una macchina, a poco più di vent'anni definì i confini teorici dell'informatica presente e futura.[20] Le sue ricerche successive non potevano non investire il campo di quella che in seguito si sarebbe chiamata intelligenza artificiale: il famoso test che porta il suo nome è ancora al centro del dibattito, quanto mai aperto, sulla capacità delle macchine di competere con la mente umana.[20]

Ma le fondamenta matematiche dell'informatica moderna furono gettate da Kurt Gödel con i suoi teoremi di incompletezza del 1931. Il primo afferma l'indimostrabilità della coerenza di qualunque sistema matematico che abbia nella sua formalizzazione anche i numeri naturali e cioè l'infinito, ovvero l'impossibilità di costruire all'interno della matematica sistemi i cui principi, o assiomi, siano non-contraddittori tra loro.[20] Insieme al secondo, del 1930, che afferma la completezza semantica della logica dei predicati, dimostrando che, se una formula è valida, allora la si può provare in un numero finito di passi, i due teoremi rappresentano un caposaldo di portata storica nel campo della logica matematica, con importanti implicazioni anche di ordine filosofico.[20] In ogni caso, condussero alla definizione e alla descrizione di questi sistemi formali, includendo concetti come le funzioni ricorsive, il lambda calcolo, la macchina universale di Turing, i sistemi di Post.[21]

Nel 1936, Alan Turing e Alonzo Church introdussero la formalizzazione di un algoritmo, con i limiti su ciò che poteva essere calcolato, oltre a un modello «puramente meccanico» per la computazione[20]. Questo divenne la tesi di Church-Turing, un'ipotesi circa la natura dei dispositivi di calcolo meccanici, come i calcolatori elettronici. Questa tesi dichiara che ogni calcolo (che sia possibile), può essere eseguito attraverso un algoritmo installato su un calcolatore, assunto che vi sia sufficiente tempo e spazio di archiviazione disponibile.

Nello stesso anno, Turing pubblicò anche il suo seminario sulla «macchina di Turing», ovvero una macchina calcolatrice digitale astratta che oggi è semplicemente chiamata «macchina universale di Turing». Questa macchina consacrò il principio del moderno calcolatore e rappresentò il luogo di nascita del concetto di "computer a programma memorizzato", il quale oggi è praticamente impiegato da ogni computer moderno.[22] Queste macchine ipotetiche erano progettato per determinare in modo formale, matematicamente, cosa potesse essere calcolato, tenendo in considerazione le limitazioni sulla capacità di calcolo. Se una macchina di Turing può completare una attività, è considerata «Turing computabile» o più comunemente «Turing completa».[23]

Akira Nakajima e la teoria del circuito a switch[modifica | modifica wikitesto]

A partire dagli anni Trenta del XX secolo, gli ingegneri elettrici furono capaci di costruire circuiti elettronici per risolvere problemi logici e matematici, ma molti lo fecero ad hoc, trascurando qualunque rigore teoretico. Questo cambiò con la teoria del circuito a switch dell'ingegnere della NEC Akira Nakajima, pubblicata proprio in quegli anni. Dal 1934 al 1936, Nakajima pubblicò una serie di documenti che mostravano che l'algebra booleana a due valori, che scoprì in maniera indipendente (conobbe il lavoro di George Boole solo nel 1938), può descrivere l'operatività dei circuiti a switch.[24][25][26][27] Questo concetto di utilizzo delle proprietà degli switch elettrici per ottenere risultati logici, è il principio base che sottosta a tutti i computer digitali elettronici. La teoria dei circuiti a switch fornì i fondamenti matematici e gli strumenti per la progettazione di sistemi digitali in quasi ogni area della moderna tecnologia.[27]

Il lavoro di Nakajima sarà in seguito citato e rielaborato nella tesi di master del 1937 di Claude Elwood Shannon, intitolata A Symbolic Analysis of Relay and Switching Circuits.[26] Mentre seguiva una lezione di filosofia, Shannon fu messo a conoscenza del lavoro di Boole, e riconobbe che quell'algebra poteva essere utilizzata per ordinare i relè elettromeccanici (impiegati dopo negli switch del telefono), in modo da risolvere problemi logici. La sua tesi divenne il principio su cui poggia la progettazione dei circuiti digitali quando divenne ampiamente nota presso la comunità degli ingegneri elettrici durante e dopo la Seconda guerra mondiale.

I primi componenti hardware del computer[modifica | modifica wikitesto]

Konrad Zuse

Nel 1941, Konrad Zuse sviluppò il primo computer funzionale controllato attraverso programmi, lo Z3. Nel 1998, fu qualificato come macchina «Turing completa».[28] Zuse sviluppò inoltre l'S2, considerata la prima macchina per il controllo industriale. Ha fondato uno dei primissimi business informatici nel 1941, producendo lo Z4, che divenne il primo computer commerciale al mondo. Nel 1946, progettò il primo linguaggio di programmazione ad alto livello, Plankalkül.[13]

Nel 1948, il Manchester Baby venne completato; era il primo computer elettronico digitale general purpose che eseguiva programmi memorizzati come la maggior parte dei computer moderni.[22] L'influenza su Max Newman del documento datato 1936 sulle macchine di Turing, e i suoi contributi logico-matematici al progetto, sono stati entrambi cruciali per il successivo sviluppo del Manchester SSEM.[22]

Nel 1950, il britannico National Physical Laboratory completò il Pilot ACE, un computer di piccola taglia programmabile, basato sulla filosofia di Turing. Con una velocità operativa di 1 MHz, il Pilot Model ACE fu per qualche tempo il computer più veloce al mondo.[22][29] Il design di Turing per l'ACE aveva molto il comune con le odierne architetture RISC e si appellava per una memoria ad alta velocità di circa la stessa capacità di un primo computer Macintosh, che era immensa per gli standard di quel tempo. Se l'ACE di Turing fosse stato costruito come previsto e completamente, avrebbe vantato un rapporto diverso dagli altri primi computer.[22]

Claude Shannon e la teoria dell'informazione[modifica | modifica wikitesto]

Nel 1948, Claude Shannon pubblicò il saggio A Mathematical Theory of Communication (Una teoria matematica della comunicazione), uno dei pilastri della moderna teoria dell'informazione e dell'informatica, dove compare per la prima volta il termine «bit», da lui coniato per designare l'unità elementare di informazione, e dove vengono introdotti il concetto di entropia dell'informazione e l'identità tra i due valori di verità (vero e falso) della logica simbolica e i valori binari 1 e 0 dei circuiti elettronici.[21] Con i suoi lavori dedicati alla teoria dell'informazione, all'affidabilità dei circuiti, al problema della sicurezza della comunicazione e alla crittografia, Shannon ha profondamente cambiato la teoria e la pratica della comunicazione.[21]

Norbert Wiener e la cibernetica[modifica | modifica wikitesto]

Norbert Wiener

Dopo il dottorato conseguito all'età di 18 anni alla Harvard University, con una tesi di logica matematica, Norbert Wiener studiò in Europa con Bertrand Russell e David Hilbert. Insegnò, a partire dal 1919, al MIT di Cambridge (Massachussetts).[21] Diede fondamentali contributi nel campo della teoria matematica dei processi stocastici, della previsione e del calcolo delle probabilità, e a partire dai suoi lavori sula statistica elaborò con il suo allievo Claude Shannon,la moderna teoria dell'informazione.[21]

Negli anni della Seconda guerra mondiale, si occupò dei problemi del controllo automatico delle armi belliche.[21] Stimolato da queste ricerche, elaborò il progetto di una scienza generale della regolazione del controllo, da lui battezzata «cibernetica», e presentata in un libro di grande successo, intitolato Cybernetics or control and communication in the animal and the machine (La cibernetica, ovvero il controllo e la comunicazione negli animali e nelle macchine, 1948).[21] Da allora, pur continuando a occuparsi di matematica generale, si dedicò prevalentemente allo sviluppo e alla divulgazione della nuova disciplina.

John von Neumann e l'architettura di Von Neumann[modifica | modifica wikitesto]

In informatica l'architettura di von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. Per tale caratteristica l'architettura di von Neumann si contrappone all'architettura Harvard nella quale invece i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti. Von Neumann propose una struttura molto semplice, che è poi quella che troviamo rispecchiata, in linea di principio, nei nostri PC.

Secondo John von Neumann, gli elementi essenziali di un calcolatore programmabile sono...

  • L'unità di controllo, che controlla e governa la sequenza delle operazioni perché avvenga in maniera corretta.
  • L'unità aritmetico-logica (detta ALU, Arithmetic Logic Unit), che esegue le operazioni di tipo aritmetico e logico.
  • L'accumulatore, una unità memoria collocata all'interno dell'ALU, in grado di ricevere informazioni dall'esterno (i dati in input) per passarli al sistema e di restituire i risultati dei calcoli verso il mondo esterno (dati in output).
  • La memoria, alla quale doveva essere possibile accedere in tempo brevissimo per recuperare i dati e il programma in essa contenuti.

Storia dell'informatica moderna e contemporanea[modifica | modifica wikitesto]

Cronologia generale della storia dell'informatica[modifica | modifica wikitesto]

Video hosting serviceIEEE 802.11blogwikiWeb search engineWorld Wide WebWYSIWYGUsenetCATS (trading system)VisicalcPongNon-linear video editingARPANETProof assistantCDC 6600emailBulletin board systemSpacewar (video game)computer reservations systemtimesharingcompiler compilerCSIRACCoffeeScriptClojureGo (linguaggio di programmazione)F Sharp (programming language)Scala (linguaggio di programmazione)ActionScriptC#Linguaggio DXSL TransformationsPhp hypertext processorObjective CamlRubyJava programming languageJavaScriptDelphiAppleScriptVisual BasicPythonHaskellMathematicaTclErlangPerlSQLHyperCardObjective-CEiffel (linguaggio)CAMLPostScriptParadox (database)Common LispTurbo PascalC++Linguaggio AdaDBASEREXXAWKSQLModula-2VisiCalcIDLFORTRAN 77SchemeMLPrologCSmalltalkForthLinguaggio PascalB (linguaggio)PLILogo (informatica)ALGOL 68BCPLFORTRAN 66Linguaggio BASICSNOBOLSimulaAPLCommon Business-Oriented LanguageMAD (linguaggio di programmazione)LISPALGOL 58FORTRANMark I AutocodeA-0 SystemPlankalkülChrome OSWindows 7Android (operating system)Windows VistaiOSUbuntu LinuxWindows Server 2003Gentoo Linuxz/OSWindows XPMac OS XWindows 2000Windows MeMac OS 9Mac OS 8BlackBerry OSWindows 98SymbianMac OS 7.6SUSE LinuxMkLinuxWindows 95OS/390OpenBSDRed Hat LinuxDebianSlackwareWindows NTUnixWareSLS LinuxOS/2Windows 3.1xSolaris Operating EnvironmentLinuxOSF/1BeOSSCO UNIXNEXTSTEPPOSIXOS/400RISC OSWindows 2.0OS/2MinixIRIXHP-UXApple IIgsAIX (sistema operativo)MachWindows 1.0Atari TOSAmigaOSGNUMac OSUNIX System VApple LisaSunOSMS-DOSOS-9Virtual Memory SystemApple DOSCP/M (sistema operativo)MVSVM/CMSRSTS-11RT-11UnixTOPS-20Airline Control ProgramWAITSCP/CMSMichigan Terminal SystemIncompatible Timesharing SystemMulticsOS/360TOPS-10Dartmouth Time Sharing SystemGeneral Comprehensive Operating SystemBurroughs MCPCTSSIBSYSSHARE Operating SystemUniversity of Michigan Executive SystemGM-NAA I/OiPadProcessore CellAthlon 64PowerPC 970ItaniumPOWER4iMacIBM Personal System/2Connection MachineAcorn ArchimedesArchitettura ARMCommodore AmigaAtari STArchitettura MIPSIBM ATApple MacintoshIBM XTApple LisaApple IIe

Commodore 64BBC MicroZX81

Apple IIIZX80Commodore VIC-20Motorola 680008086TRS-80Apple IIVAX-11Commodore PETApple ICray-1MOS 6502Zilog Z80Altair 8800Motorola 6800Intel 8080Intel 8008Intel 4004PDP-11Datapoint 2200PDP-10BESMCDC 6600PDP-8IBM 360PDP-6ReserVecATLAS computerIBM 7030 StretchCDC 1604PDP-1IBM 1401AN/FSQ-7UNIVAC IIIBM 608 Transistor CalculatorRamacHarwell CADETIBM 704IBM 650Strela computerIBM 701UNIVAC 1101Whirlwind (computer)UNIVAC ILEO IFerranti Mark 1Manchester Mark 1Small-Scale Experimental MachineIBM SSECENIACColossus Mark IHarvard Mark IZ3 (computer)Atanasoff–Berry ComputerDockerCryptomonetaThe Onion RouterOnion routingPCI ExpressSerial ATABlade serverAsymmetric Digital Subscriber LineAccelerated Graphics PortDVD-ROMUSBIEEE 1394Cluster BeowulfComputer a DNASmartphonePeripheral Component InterconnectPCMCIAVESASVGAExtended Industry Standard Architecturechip isolinearischeda audioVGAConnection Machinepersonal digital assistantSCSIParallel ATACD ROMEnhanced Graphics Adapterexpanded memoryAdvanced Technology AttachmentDomain Name SystemcoprocessoreMulti-touchPortatileRISCMIDIHayes SmartmodemColor Graphics AdapterIndustry Standard ArchitectureVMEbusCDsupercomputerstampa lasersingle-board computerTCP/IPtouchscreenethernetMagnavox Odysseygame consolemicroprocessorefloppy diskdynamic RAMRS-232ARPANETpacket switchingfuzzy logictime-sharingmousepagingmemoria virtualeinterruptspoolgarbage collectionintegrated circuitstampante a matrice di puntihard diskmemoria a nuclei di ferriteregistro indicetamburo magneticoRAMtransistortubo di WilliamsteletypePOPLmark challengeGoogle Code JamTopCoderICFP Programming ContestCADE ATP System CompetitionOlimpiadi internazionali dell'informaticaComputer quantisticoComplessità P e NPNorth American Computer Chess ChampionshipTest di TuringRelational database management systemDavid Levy (chess player)Legge di Moore

Note[modifica | modifica wikitesto]

  1. ^ a b c d Walter Maraschini e Mauro Palma, Enciclopedia della Matematica, in Le Garzantine, A-L, Corriere della Sera, 2014.
  2. ^ a b Joseph Needham (1986). Science and Civilization in China: Volume 4, Part 2, page 298. Taipei: Caves Books, Ltd.
  3. ^ A.C. Sinha, On the status of recursive rules in trasformational grammar, in Lingua, vol. 44, 2-3, 1978.
  4. ^ AA.VV., Decoding the ancient Greek astronomical calculator known as the Antikythera Mechanism (PDF), in Nature, vol. 444, nº 7119, 2006, DOI:10.1038/nature05357.
  5. ^ (EN) Christián C. Carman e James Evans, On the epoch of the Antikythera mechanism and its eclipse predictor, in Archive for History of Exact Sciences, vol. 68, nº 6, 1° novembre 2014, pp. 693–774, DOI:10.1007/s00407-014-0145-5. URL consultato il 14 settembre 2017.
  6. ^ (EN) John Markoff, Solving the Riddles of an Early Astronomical Calculator, in The New York Times, 24 novembre 2014. URL consultato il 14 settembre 2017.
  7. ^ (EN) Philip Ball, Complex clock combines calendars, in Nature News, vol. 454, nº 7204, 30 luglio 2008, pp. 561–561, DOI:10.1038/454561a. URL consultato il 14 settembre 2017.
  8. ^ USC-MSA Compendium of Muslim Texts, su usc.edu, 19 gennaio 2008. URL consultato il 14 settembre 2017 (archiviato dall'url originale il 19 gennaio 2008).
  9. ^ (EN) R. P. Lorch, The Astronomical Instruments of Jābir ibn Aflah and the Torquetum, in Centaurus, vol. 20, nº 1, 1° marzo 1976, pp. 11–35, DOI:10.1111/j.1600-0498.1976.tb00214.x. URL consultato il 14 settembre 2017.
  10. ^ Simon Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Doubleday, 1999.
  11. ^ (EN) Al-Kindi, Cryptography, Code Breaking and Ciphers | Muslim Heritage, su www.muslimheritage.com. URL consultato il 14 settembre 2017.
  12. ^ Teun Koetsier, On the prehistory of programmable machines: musical automata, looms, calculators, in Mechanism and Machine Theory, vol. 36, nº 5, pp. 589–603, DOI:10.1016/s0094-114x(01)00005-2. URL consultato il 14 settembre 2017.
  13. ^ a b c Bryan Bunch e Alexander Hellemans, The Timetables of Technology. A Chronology of the Most Important People and Events in the History of Technology, Touchstone, 1993.
  14. ^ History of Computers and Computing, Mechanical calculators, Pioneers, Wilhelm Schickard, su history-computer.com. URL consultato il 14 settembre 2017.
  15. ^ History of Computing Science: The First Mechanical Calculator, su lecture.eingang.org. URL consultato il 14 settembre 2017.
  16. ^ Peggy Aldritch Kidwell e Michael R. Williams, The Calculating Machines: Their history and development (PDF), Massachusetts Institute of Technology and Tomash Publishers, 1992.
  17. ^ a b Matti Tedre, The Science of Computing: Shaping a Discipline, CRC Press, 2014.
  18. ^ a b Paolo Freguglia (a cura di), Boole, in Grandangolo Scienza, vol. 29, Corriere della Sera, 2016.
  19. ^ a b c d Marisa Addomine e Daniele Pons, Informatica. Metodi e fondamenti, Arancione, Zanichelli, 2014.
  20. ^ a b c d e Mattia Monga (a cura di), Turing, in Grandangolo Scienza, vol. 14, Corriere della Sera, 2016.
  21. ^ a b c d e f g Walter Maraschini e Mauro Palma, Enciclopedia della Matematica, in Le Garzantine, M-Z, Corriere della Sera, 2014.
  22. ^ a b c d e B. Jack Copeland, The Stanford Encyclopedia of Philosophy, Fall 2008, Metaphysics Research Lab, Stanford University, 2008. URL consultato il 14 settembre 2017.
  23. ^ (EN) Barker-Plummer, David, Turing Machines, 14 settembre 1995. URL consultato il 14 settembre 2017.
  24. ^ Akihiko Yamada, History of Research on Switching Theory in Japan, in IEEJ Transactions on Fundamentals and Materials, vol. 124, nº 8, 2004, pp. 720–726, DOI:10.1541/ieejfms.124.720. URL consultato il 15 settembre 2017.
  25. ^ Information Processing Society of Japan, Switching Theory/Relay Circuit Network Theory/Theory of Logical Mathematics-Computer Museum, su museum.ipsj.or.jp. URL consultato il 15 settembre 2017.
  26. ^ a b Radomir S. Stanković, Jaakko T. Astola e Mark G. Karpovsky, Some Historical Remarks on Switching Theory. URL consultato il 15 settembre 2017.
  27. ^ a b Radomir S. Stanković e Jaakko Astola, Reprints from the Early Days of Information Sciences: TICSP Series On the Contributions of Akira Nakashima to Switching Theory, (PDF), in TICSP Series, nº 40, Tampere International Center for Signal Processing, 2008.
  28. ^ R. Rojas, How to make Zuse's Z3 a universal computer, in IEEE Annals of the History of Computing, vol. 20, nº 3, July 1998, pp. 51–54, DOI:10.1109/85.707574. URL consultato il 15 settembre 2017.
  29. ^ (EN) How Pilot ACE changed computing, 15 maggio 2010. URL consultato il 15 settembre 2017.

Voci correlate[modifica | modifica wikitesto]


Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica