Dall’algebra di Boole all’informatica moderna passando attraverso la capacità di ragionamento del computer.

Boole, per usare le parole di Renato Borruso[1], “…ideò un sistema di logica formale ipotetica che grazie all’adozione dei BIT (di origine araba) serviva egualmente bene per effettuare operazioni aritmetiche con fulminea velocità e, al tempo stesso…per riprodurre il meccanismo del ragionamento.”[2].

A base del sistema logico matematico di Boole vi è, quindi, l’adozione del sistema binario quale strumento per la rappresentazione delle operazioni aritmetiche e dei processi tipici del ragionamento umano.

“Pur mantenendo distinte le operazioni mentali da quelle algebriche, … il compito di Boole fu quello di travestire la logica con un abito matematico algebrico”[3].

I successivi passaggi storici e culturali necessari per porre a fondamento dell’informatica e dei calcolatori, modernamente intesi, l’algebra di Boole sono rappresentati simbolicamente:

dall’adozione del sistema binario come schema di base dei computer;
dall’intuizione/ricordo di Simon in merito all’utilizzo delle capacità del computer per elaborare non solo operazioni di tipo numerico, ma anche di tipo logico;
dall’avvento di un computer a carattere universale.
In merito al primo punto è necessario soffermarsi sul periodo storico che ha rappresentato non solo lo sfondo, scenario, passivo di tale intuizione ma anche il motore propulsivo di numerose invenzioni e scoperte tecnologiche: gli anni tra il 1939 e il 1945.

Nel 1939 Konrad Zuse (Berlino, 22 giugno 1910 – Hünfeld, 18 dicembre 1995) costruì facendo perno sugli studi dei suoi predecessori lo Z1, primo di un’innovativa serie di calcolatori elettromeccanici basati sul sistema binario e programmabili, funzionanti prima a memorie meccaniche e poi a relè (Z2, Z3). Successivamente, nel 1939 John Vincent Atanasoff e Clifford E. Berry dell’Iowa State University idearono e realizzarono “Atanasoff Berry Computer” (denominato ABC), il primo computer digitale totalmente elettronico. L’Atanasoff-Berry Computer introdusse molte innovazioni nel campo dei calcolatori come l’adozione dei numeri binari in un computer digitale (lo Z3 utilizzava i numeri binari ma era un calcolatore elettromeccanico) e la loro gestione, il calcolo parallelo le memorie rigenerative e una separazione tra dati e istruzioni.

Tuttavia, il primo computer basato sul sistema numerico binario e totalmente programmabile fu lo Z3, costruito in Germania da componenti riciclati di telefonia dal già nominato Konrad Zuse, che lo realizzò nel 1941. Lo Z3 venne poi distrutto in un bombardamento dagli Alleati, e per molti anni n’è stata ignorata perfino l’esistenza; di conseguenza il primato di primo computer della storia è stato ingiustamente riconosciuto alla macchina statunitense ENIAC per molti anni. Solo con il convegno internazionale di Informatica del 1998, infatti, venne giustamente riconosciuto a Konrad Zuse il ruolo di inventore del primo computer programmabile funzionante della storia.

In merito al secondo punto, il computer come sistema idoneo a svolgere anche operazioni logiche, si ricorda che già nel 1938 Claude Elwood Shannon (Petoskey, 30 aprile 1916 – Medford, 24 febbraio 2001)[4] riuscì a dimostrare con la tesi “Un’analisi simbolica dei relè e dei circuiti” che nello scorrere di un segnale elettrico attraverso una rete di interruttori (le cui uniche variabili possibili possono essere On/Off) si possono riprodurre le regole dell’algebra di Boole anch’essa basata sui valori dicotomici (VERO e FALSO) propri della logica simbolica.

L’algebra booleana divenne così il punto di riferimento per la progettazione di circuiti logici digitali. Alle conclusioni di Shannon si aggiunse qualche decennio dopo l’intuizione di Herbert Alexander Simon (Milwaukee, 15 giugno 1916 – Pittsburgh, 9 febbraio 2001) un economista e informatico statunitense, Premio Nobel per l’economia “per le sue pioneristiche ricerche sul processo decisionale nelle organizzazioni economiche” (1978). Simon, riallacciandosi ad un’idea e al pensiero di studiosi del passato, riscoprì portandola a nuova luce, “…quanto Boole e Babbage avevano già intravisto quasi un secolo prima e che, cioè, il computer è in grado di elaborare non solo numeri, ma anche simboli (ancorché espressi in BIT) e, quindi, di svolgere operazioni non solo aritmetiche, ma anche logiche”[5].

Il presupposto per l’applicazione dell’algebra di Boole al computer, quindi, trova fondamento nel fatto di considerare tale apparato come una rete logica ossia come un sistema di dispositivi (porte logiche) tra loro connessi che hanno la proprietà di poter eseguire delle operazioni utilizzando una logica di tipo binario.

Da tali premesse si può compiere una riflessione più ampia in merito al computer ed ai suoi meccanismi di funzionamento. Infatti, se nelle prime calcolatrici/calcolatori l’energia era utilizzata per muovere gli ingranaggi e le ruote meccaniche ed effettuare così le operazioni di calcolo, nei computer moderni, invece, l’energia è utilizzata come informazione e il semplice confronto (acceso/spento – on/off) per calcolare o meglio raffrontare.

“Il computer, quindi, paradossalmente, non sa far di conto, ma sa ragionare (ovviamente senza averne l’autocoscienza che è propria solo degli uomini) e proprio di tale capacità si avvale per eseguire i calcoli. A ben vedere, quindi, si può dire, in definitiva che non sia un “calcolatore”, ma solo un “confrontatore”, un “ragionatore” (Borruso).

In merito al terzo punto, carattere universale del computer, è opportuno svolgere alcune considerazioni su due personaggi estremamente importanti per il successivo sviluppo dell’era dell’informatica: John von Neumann (Budapest, 28 dicembre 1903 – Washington, 8 febbraio 1957); Alan Mathison Turing (Londra, 23 giugno 1912 – Wilmslow, 7 giugno 1954).

Neumann e Turing furono due delle menti scientifiche più importanti del XX secolo. A loro si devono miliari contributi in campi come teoria degli insiemi, analisi funzionale, crittanalisi, topologia, fisica quantistica, economia, informatica, teoria dei giochi, fluidodinamica e in molti altri settori della matematica.

Ai fini del nostro discorso quello che rileva di Neumann, in particolare, è la riflessione che lo ha condotto dopo aver preso contezza della limitatezza, in quanto macchine quasi del tutto prive di memoria e di flessibilità:

di Mark I (ASCC) di Howard Aiken, costruita in collaborazione con l’IBM;
dell’ENIAC (Electronic Numerical Integrator And Computer) costruita da Prosper Eckert e John Mauchly.
Proprio da tale constatazione nasce l’idea che per aumentare le capacità, in ampio senso intese, del computer era necessario riuscire a modificare l’impostazione rigida sulla quale era stato fino allora progettato e realizzato.

Il computer doveva “imparare” da un software secondo quanto aveva brillantemente intuito Alan Turing con il progetto della c.d. “macchina universale”.

Nel 1945 nasce così First Draft of a Report on the Edvac (Electronic Discrete Variables Automatic Computer), la prima macchina digitale programmabile tramite un software basata su quella che sarà poi definita l’architettura di von Neumann.


NOTE BIBLIOGRAFICHE

[1] Per un approfondimento del pensiero di Renato Borruso (magistrato, docente di informatica giuridica presso le Università più autorevoli d’Italia e filosofo del diritto e dell’informatica) si rinvia ad una prima bibliografia: Sistema di ricerca elettronica della giurisprudenza, Stamperia Nazionale, 1969; L’Italgiure-Find, Stamperia Nazionale, 1974; Civiltà del computer, (2 vol.), IPSOA, 1978; Computer e diritto (2 vol.), Giuffrè, 1988; L’informatica per il giurista Giuffrè, – I edizione, con C.Tiberi, 1990; Digitantibus succurrunt jura, Kronos editore, 1991; Informatica Giuridica – voce dell’Enciclopedia del diritto – I° Aggiornamento – Giuffrè, 1996; Centro Elaborazione Dati della Corte di Cassazione – voce dell’Enciclopedia del diritto – II° Aggiornamento – Giuffrè, 1997; La legge, il giudice, il computer, Giuffrè, 1998; La tutela giuridica del software, Giuffrè, 1999; Computer e documentazione giuridica: teoria e pratica della ricerca – con L.Mattioli, Giuffrè, 2000; L’informatica per il giurista: dal bit a internet – II° edizione – con C.Tiberi, Giuffrè, 2001; La criminalità nel mondo dei nuovi media –Aspetti criminologici, INFORAV, Roma, 2001; Diritto civile e informatica (con G. Ciacci), “Trattato di diritto civile del Consiglio Nazionale del Notariato” – (di R.Borruso cap.li 1-4, 6 e 7 sez. II), Edizioni scientifiche italiane, Napoli, 2004; L’informatica del diritto – con Di Giorni-Mattioli-Ragona, Parte Speciale del volume intitolata: “Riflessioni sull’informatica giuridica” (pagg 293-413) , Giuffrè, Milano, 2004.

[2] Borruso R.-Russo S. – Tiberi C., L’informatica per il giurista, Dal Bit ad Internet, III ed., Milano, 2009,84.

[3] “Il pensiero logico di George Boole”, di Archimede Albertelli, pubbl. su “Le Scienze (Scientific American)”, num.146, ott.1980, pag.22-30

[4] Claude Elwood Shannon, matematico e ingegnere statunitense, è considerato “il padre della teoria dell’informazione.

[5] Borruso R.-Russo S. – Tiberi C., L’informatica per il giurista, Dal Bit ad Internet, III ed., Milano, 2009,84