La storia dell'informatica può dirsi cominciare, in un
senso molto lato, con l'introduzione dell'abaco nel 2000 a.C.; le
macchine per calcolare poi non hanno subito per migliaia di anni
particolari modifiche o innovazioni specifiche. Solo nel '600 la
tecnica raggiunse un livello tale da permettere la costruzione di
antenati delle odierne calcolatrici: famose rimangono la
“pascalina”, progettata da Blaise Pascal, e la macchina
da calcolo di Leibniz, in grado persino di estrarre la radice
quadrata.
Meno famosa fu la prima macchina calcolatrice, che venne
realizzata nel 1623 a Tubingen da un professore di matematica e
astronomia, Schickard, in grado di eseguire le quattro operazioni
basilari dell'aritmetica. Il prototipo andò purtroppo
distrutto e la storia non ebbe diffusione troppo ampia, tanto che
ancora oggi molti ritengono a torto la pascalina come la prima
macchina calcolatrice della storia (anche se con ogni
probabilità la sua invenzione fu indipendente e da
attribuirsi tutta al genio di Pascal).
Le macchine calcolatrici non si diffusero a causa della
delicatezza dei loro meccanismi; solo agli inizi dell'800 conobbero
una diffusione, specialmente in ambito bancario e commerciale (sono
di quest'epoca i primi registratori di cassa, ad esempio). Fu in
quest'epoca che però furono definiti gli elementi
concettuali che sono alla base dei calcolatori 1 moderni, ad opera
dell'inglese Charles Babbage. Costui progettò, su
finanziamento del governo inglese, una macchina (il “motore
differenziale” o “macchina differenziale”,
differential engine) che potesse essere usato per
calcolare tavole astronomiche senza il rischio di imprecisioni
umane. Il progetto prevedeva che il “motore” fosse in
grado di eseguire non già una singola operazione ma una
serie di esse secondo un ordine prestabilito (il concetto di
“programmazione”); il metodo delle differenze impiegato
da Babbage gli consentiva di effettuare i calcoli grazie a una
serie successiva di addizioni, e a tale scopo egli realizzò
un sistema di ruote dentate in grado di svolgere addizioni con
riporto nell'ordine necessario alla macchina. Fu anche progettato
un sistema per incidere i risultati su una lastra di rame, in modo
tale da evitare errori di trascrizione da parte di coloro che
avessero dovuto, in seguito, riportare i risultati su carta.
Un'immagine di Charles Babbage
|
Ma Babbage realizzò, nella pratica, solo una piccola
parte di quello che avrebbe voluto. Anche perchè il motore
differenziale non era più la prima delle sue
priorità, in quanto egli si stava dedicando alla
“macchina” o “motore analitico”
(analythical engine), suo sogno che, se realizzato,
avrebbe anticipato di un secolo la realizzazione del calcolatore
vero e proprio. Tale macchina prevedeva non più una serie
fissa di operazioni ma una “programmabilità”
vera e propria ottenuta attraverso schede perforate, in modo simile
ai “telai programmabili” che si erano diffusi
all'epoca, inventati da J. Jacquard. Il motore analitico prevedeva
anche un'istruzione di salto condizionale, ovvero di modifica
dell'ordine delle istruzioni in base a una condizione; Babbage ne
prevedeva l'implementazione tramite l'avvolgimento o il
riavvolgimento del nastro secondo la condizione inserita. Anche
questa macchina non fu però mai realizzata, e il lavoro di
Babbage fu dimenticato.
Il motore differenziale, prototipo
|
Laddove le calcolatrici facevano passi da gigante, il concetto
del “motore analitico” non trovò altri
“sostenitori” ancora per lungo tempo. L'elaborazione
automatica dei dati ebbe un grande impulso solo grazie al lavoro di
Hermann Hollerith, che nel 1890 inventò una macchina per il
conteggio tramite schede perforate che trovò largo uso negli
uffici statunitensi per il censimento di quello stesso anno. Questo
tipo di macchine si diffuse rapidamente negli uffici sia
governativi che privati e indusse Hollerith a fondare una
società per la commercializzazione di quelle che venivano
chiamate “meccanografiche”. Questa società
diventerà nel 1924 la International Business Machine
(IBM).
Nel frattempo, la matematica continuava il suo sviluppo;
nasceva, più o meno nello stesso periodo di Babbage, quella
branca della matematica, l'algebra di Boole, che consente
la rappresentazione con simboli matematici delle
proposizioni logiche (ovvero di quelle frasi che sono dotate di un
valore di verità, “vero” oppure
“falso”). Il lavoro di Boole venne ampiamente usato in
seguito da altri, come Claude Shannon che ne fece la base della sua
teoria della commutazione negli anni '30; con questo linguaggio
sono state costruite le fondamenta della logica nella
programmazione dei moderni calcolatori.
Una foto di Konrad Zuse (1910 - 1995)
|
Il concetto della macchina programmabile fu ripreso da Konrad
Zuse negli anni '30. Costui realizzò un calcolatore
programmabile, ma per inesperienza utilizzò non i sistemi
meccanici a ruote (costruiti attorno alla base 10) ma
preferì utilizzare i relé, elementi
meccanici in grado di essere attivi o spenti. Questo segnò
il primo calcolatore che utilizzasse la base 2 invece della base
10, anticipando lo “stato dell'arte” di diverse decine
di anni; il lavoro di Zuse fu però sostanzialmente ignorato
dalla comunità scientifica di allora. Una curiosità:
il governo nazista rifiutò di sovvenzionare i calcolatori
della “serie Z” di Zuse perchè la loro
realizzazione, secondo i calcoli del Reich, avrebbe richiesto
più tempo di quello che il governo tedesco contava di
impiegare prima della fine della guerra. Inutile dire che i
nazisti, oltre ad aver perso una delle grandi invenzioni di questo
secolo, si erano tremendamente sbagliati sul calcolo dei tempi;
Zuse non rimase poi in Germania durante la guerra, ma riparò
in Svizzera dove continuò il proprio lavoro.
Gli Alleati, invece, non avevano invece sottovalutato
l'importanza delle macchine per il calcolo automatico avrebbero
potuto avere nel conflitto in corso; infatti, fu durante la guerra
che venne costruito uno dei primi veri “computer”;
nominato Colosso, ne furono costruite due versioni (Mark I e Mark
II), e della seconda versione ne furono costruite ben dieci
unità. Il lavoro a cui Colosso era dedicato era la
decifrazione dei messaggi nazisti intercettati, codificati con una
macchina chiamata Enigma, di progettazione americana ma comprata e
modificata dai reparti tecnici nazisti. Colosso era prevalentemente
composto da elementi meccanici, ma incorporava già idee che
saranno poi riprese successivamente, come l'uso dell'elettronica;
all'algoritmo di decifrazione avevano lavorato molti matematici
britannici dell'epoca nella base segreta alleata di Bletchley Park,
nella campagna inglese. Il vantaggio strategico derivante dalla
decodifica di Enigma fu enorme: ad esempio, la marina italiana
perse, a causa delle trasmissioni intercettate, tre incrociatori
pesanti e due cacciatorpediniere nella battaglia di Capo Matapan
del 28 marzo 1941; e furono sempre i messaggi decifrati da Colosso
ad aiutare gli Alleati nel progettare lo sbarco in Normandia,
cogliendo impreparati i tedeschi e capovolgendo le sorti della
guerra. Dopo la fine di quest'ultima, pare sia stato Churchill
stesso a ordinare la distruzione di tutte le copie di Colosso
“in frammenti non più grandi di una mano”; la
storia di queste macchine fu declassificata e divulgata dal governo
inglese solo nel 1970, e pertanto in molte fonti non se ne trova
alcuna traccia. Si può però affermare, senza troppe
incertezze, che fu Colosso il primo vero e proprio
“computer” elettromeccanico della storia.
Alan Turing (1912 - 1954)
|
Tra i matematici responsabili della realizzazione dell'algoritmo
di decifrazione, usato poi da Colosso, figurava Alan Turing, noto
come il “padre della computazione”; a guerra iniziata,
a poco meno di trent'anni d'età, era già famoso per
aver proposto la sua teoria della macchina universale, un
formalismo matematico utilizzato per descrivere e studiare le
macchine programmabili, e il concetto di
computabilità che legava gli algoritmi ad altre
branche già esistenti della matematica, consentendo
così di studiare sia la macchina che le operazioni che quesa
doveva eseguire in termini puramente matematici, facendo
così nascere una teoria del calcolo automatico che
è uno dei pilastri della moderna informatica teorica. A
detta di molti, il lavoro di Turing ebbe per l'informatica un
impatto paragonabile a quello che il lavoro di Einstein ebbe sulla
fisica; l'applicazione tecnica dei teoremi da lui creati e di altri
teoremi relativi all'informazione, come quelli formulati da Claude
Shannon alla fine degli anni '30, fecero da base alla progettazione
e costruzione dei primi computer.
L'unico altro computer costruito durante la guerra, se si
eccettua Colosso, fu lo Z3 di Konrad Zuse, che non fermò mai
le proprie ricerche; utilizzando i relé, era in grado di
effettuare calcoli in virgola mobile con un sistema binario,
proprio come i computer moderni. L'unico prototipo di Z3
andò purtroppo distrutto durante la guerra, e la ricerca, al
di fuori degli ambienti segretissimi degli Alleati, subì una
battuta d'arresto.
Con la distruzione di Colosso e la costruzione di ENIAC alla
fine della guerra termina la prima fase della storia dei
calcolatori, la “preistoria” dell'informatica. I
calcolatori costruiti a partire da ENIAC in poi sono noti come
computer della prima generazione e sono i primi veri
esempi di computer elettronici e programmabili che il mondo
conobbe.
Immagine di un computer Colosso. Complesso di Bletchley Park,
Devonshire.