fondoScienzae

Per iniziare la nostra breve storia dell’avvento del computer chiediamo aiuto a uno dei suoi protagonisti, Alan Turing, il logico inglese che nel 1945 redige la sua Proposta per lo sviluppo nella Divisione Matematica di una macchina calcolatrice elettronica (ACE). Dove ACE sta per Automating Computing Engine: macchina per il calcolo automatico.

 

«Le macchine calcolatrici sono state progettate in passato per eseguire in maniera accurata e moderatamente veloce piccole parti di calcoli che ricorrono di frequente. I quattro processi di addizione, sottrazione, moltiplicazione e divisione, insieme forse a ordinamento e manipolazione, esauriscono tutto quello che poteva essere fatto fino a pochissimo tempo fa, se escludiamo le macchine come l’analizzatore differenziale, le gallerie del vento e simili, che operano con misure di grandezze piuttosto che con calcoli.

Il calcolatore elettronico che viene qui proposto dovrebbe essere qualcosa di diverso, in quanto sarà in grado di affrontare e risolvere problemi nella loro interezza. Invece di servirsi a reinserirlo al momento giusto, di tutto questo si prenderà cura la macchina stessa. Questa soluzione ha moltissimi vantaggi:

  1. La velocità della macchina non sarà più limitata dalla velocità dell’operatore umano.
  2. L’elemento umano di fallibilità sarà eliminato, benchéin qualche misura possa essere sostituito dalla fallibilità meccanica.
  3. Si potranno eseguire processi molto più complicati di quelli che potrebbero essere facilmente trattati con il lavoro umano» [1].

 

Quella che Turing, con estrema chiarezza, propone di costruire in Inghilterra è dunque una macchina che presenta due novità: una concettuale, l’altra fattuale. Primo: deve essere una macchina che lavora in maniera automatica, in modo da superare di diversi ordini di grandezza la potenza di calcolo dell’uomo. Secondo: deve essere una macchina elettronica.

Quello di Turing è un computer inteso nel senso più moderno del termine. Anche se ACE non è il primo computer proposto.

In realtà, quale sia la prima volta che l’idea di computer è stata avanzata e, persino, quale sia la prima volta che un computer è stato realizzato non è semplice da definire. Giustamente Richard Wesley Hamming, un matematico che dell’informatica è stato uno dei pionieri, in apertura del libro A History of Computing in the Twentieth Century, uscito nel 1980 a cura di Nicholas Metropolis, Jack Howlett e Gian Carlo Rota, invita chi si accinge a ricostruirne la storia che il computer non è stata una scoperta o un’invenzione realizzata da una persona precisa in un tempo preciso, ma è la storia di un processo [2]. Anzi, di diversi processi autonomi che hanno trovato infine un concreto punto di convergenza.

Il primo processo riguarda l’idea, il progetto e la concreata realizzazione di un symbol manipulator, di una macchina capace di manipolare simboli. Un secondo processo autonomo riguarda l’idea, il progetto e la concreata realizzazione di un number cruncher, di una macchina capace di “macinare numeri” in gran quantità e grande velocità. La differenza è evidente: il manipolatore di simboli opera, per così dire, in termini qualitativi, sulla semantica. Il “macina numeri” opera sulla potenza: sulla quantità di calcolo.Quando Alan Turing, come vedremo, elabora nel 1936 l’idea teorica del computer ha in mente una macchina capace di manipolare simboli. Quando, invece, nove anni dopo, nel 1945, propone ACE, ha in mente una macchina capace di “macinare numeri”. Allo stesso modo, quando Arthur Burks, Herman Goldstine e John von Neumann, nel 1947, propongono a Preliminary Discussions of the Logical Design of an Electronic Computing Instrument hanno in mente sia un number cruncher che un symbol manipulator.

Ma c’è un terzo processo autonomo che converge verso l’idea che abbiamo oggi del computer e riguarda il linguaggio. Ogni macchina funziona sulla base di istruzioni, che sono scritte appunto in un certo linguaggio: con tanto di lettere – oggi è predominante il codice (ovvero il linguaggio) binario che di “lettere” ne usa solo due, i numeri 0 e 1 – di parole e di frasi. Ogni computer funziona adottando un linguaggio. Ma di linguaggi ce ne sono diversi – si va da quelli di base (il “linguaggio macchina”) a quelli più specifici e complessi (i “linguaggi di alto livello”).

Ebbene, questi tre processi – la realizzazione di number cruncher, di symbol manipulator e di elaborazioni di linguaggi informatici – hanno avuto storie evolutive diverse. Talvolta si sono intersecati, altre volte hanno imboccato percorsi paralleli, con tempi e intensità di sviluppo diversificati.

È sulla base di tutte queste premesse, con molta prudenza e un pizzico di arbitrarietà che possiamo tentare di ricostruire, a volo di uccello, la storia dello “sviluppo”del computer e non della sua “invenzione”.

(1. continua)

 

Note

[1] Alan M. Turing, Intelligenza meccanica, Bollati Boringhieri, Torino, 1994, p. 29.

[2] Richard Wesley Hamming,We Would Know What They ThoughtWhen They Did It: in Nicholas Metropolis, Jack Howlett e Gian Carlo Rota, A History of Computing in the Twentieth Century, Academic Press, New York, 1980, pp. 5-9

Questo sito utilizza cookies tecnici, cookies analytics e cookies di terze parti (altri siti e piattaforme web) per il monitoraggio delle visite al sito, la condivisione dei contenuti sui social network, la compilazione automatica di moduli e/o la visualizzazione di contenuti multimediali. Continuando a navigare acconsenti a usare eventuali cookie presenti in siti esterni a cui sono attivi dei collegamenti che, comunque, sono attivati volontariamente.