Giovedì 29 Giugno 2006

- Sezione 3 - Dal 1600 al 1945 - Approfondimenti

Le radici filosofiche dell’informatica

Fin dai primi pensatori greci (Parmenide, Socrate, Platone, Aristotele, ecc.) la filosofia occidentale si è interrogata sui modi migliori di acquisire informazioni (filosofia della conoscenza), codificarle, organizzarle, rielaborarle e trarne conseguenze corrette (logica).

Col tempo, tale ricerca si sarebbe posta l’ambizioso obiettivo di codificare regole (algoritmi) che guidassero passo passo la ricerca e il trattamento delle informazioni, permettendo a chiunque di procedere senza errori e nel modo più efficiente sulla strada del conoscere (problema del metodo in Bacone, 1561-1626, e Cartesio, 1596-1650). Si aspirava dunque a procedimenti automatici, ma ciò significava anche (in una prospettiva che solo in seguito si potè meglio apprezzare) eseguibili meccanicamente: ecco perché il successo (per quanto tuttora parziale) di tale programma ci ha condotto all’informatica (= informazione automatica).

La matematica fu la prima a progredire in questa direzione, grazie alla sua natura formale e simbolica, e al rigore logico conferitole di Euclide: presto apparvero dunque le prime calcolatrici meccaniche, come quelle di Pascal (1642) e Leibniz (1673), finché Charles Babbage progettò una macchina programmabile con schede perforate in grado di eseguire ogni genere di calcolo (1833). Ma si sarebbe potuto passare dalla semplice automazione del calcolo aritmetico alla vera e propria informatica solo con la realizzazione di due condizioni: primo, la formalizzazione di ogni genere di conoscenza che permettesse di codificarla in numeri o simboli trattabili come i numeri; secondo, la scoperta di un supporto fisico adatto, cioè di un tipo di macchina e di materiali in grado di svolgere senza errori e in tempi accettabili operazioni di complessità immensamente superiore a quella di semplici funzioni aritmetiche (nessuna macchina fatta di ruote, ingranaggi e schede perforate potrebbe infatti svolgere i più elementari compiti di uno dei nostri personal computer: sarebbe di dimensioni ingestibili, impiegherebbe tempi lunghissimi e sarebbe continuamente bloccata da guasti meccanici).

Quanto alla prima condizione, già Pitagora e Platone avevano teorizzato che l’intera realtà ha struttura matematica. Raimondo Lullo (1235-1316) intuì che tutto il sapere si può analizzare in contenuti elementari, rappresentare simbolicamente e trattare secondo regole (ars combinatoria), mentre Cartesio sostenne che ogni problema si poteva scomporre in problemi più elementari, fino a giungere a questioni talmente semplici da trovare una soluzione immediata. Secondo Hobbes (1588-1679) il pensiero non era che un calcolo, e Spinoza (1632-1677) pensava alla mente come “automa spirituale” e al sistema dei concetti come a una macchina governata da regole combinatorie.

Leibniz iniziò a dar corpo a queste idee progettando un calculus ratiocinator (1666) che algebrizzava la logica dei predicati di Aristotele: ad esempio, “tutti gli A sono B” si scriveva “A/B”, e “Tutti i B sono C” si scriveva “B/C”; a questo punto, la congiunzione “tutti gli A sono B e “tutti i B sono C” era l’operazione “A/B ∙ B/C”, che dava come risultato “A/C”. Il suo progetto fu ripreso e realizzato due secoli dopo da George Boole e Augustus De Morgan, che tradussero la logica in un’algebra di classi (1847). Grazie ad essa, e ispirandosi anche a Babbage, Stanley Jevons realizzò nel 1870 una prima macchina per inferenze logiche.

La definitiva formalizzazione e aritmetizzazione dell’informazione venne poi dalla filosofia della matematica, con le discussioni sulla natura dei numeri, sulla coerenza e la completezza dei sistemi matematici, e sulla computabilità. Nell’affrontare tali problemi Gottlob Frege unificò definitivamente calcolo logico e calcolo numerico trattando i concetti come funzioni, e formalizzò i procedimenti logici con la completa esplicitazione delle definizioni e delle regole, che in prospettiva li rendeva effettivamente eseguibili da una macchina (Begriffschrift, 1879). L’unificazione di logica e matematica fu perfezionata dai filosofi Alfred Whitehead e Bertrand Russell (Principia mathematica, 1910), mentre il processo di formalizzazione era completato da David Hilbert (1862-1943), che trattò anche i simboli logici come simboli non interpretati e definiti solamente dalle regole d’uso; affrontando il problema della coerenza, inoltre, egli mostrò come rappresentare le proposizioni con formule aritmetiche, e con un analogo espediente il logico e matematico Kurt Gödel dimostrò teoremi fondamentali sul problema della completezza e della computabilità (1931)..

Infine, proprio per chiarire la nozione di computabilità, nel 1936 Alan Turing la visualizzò nel modello logico di una macchina capace di risolvere qualunque problema algoritmico (ossia risolubile in un numero finito di operazioni elementari come scrivere un simbolo, leggerlo, cancellarlo ecc.) Diveniva dunque evidente come le regole per manipolare l’informazione, una volta pienamente generalizzate e formalizzate, si traducessero facilmente in una struttura meccanica. Turing, in particolare, ebbe l’intuizione che calcolare fosse solo un caso particolare della più generale attività di manipolazione di simboli, e tale intuizione fu alla base del carattere virtuale del calcolatore, cioè della sua capacità di emulare qualsiasi altra macchina le cui operazioni fossero rappresentabili attraverso una successione di istruzioni. (La macchina universale, ovvero i linguaggi di programmazione!).

La seconda condizione per l’emergere dell’informatica fu lo sviluppo di macchine adatte al trattamento fisico dell’informazione, favorito da una serie di intuizioni convergenti: anzitutto si comprese che con la notazione binaria (la trascrizione di qualunque simbolo logico o matematico per mezzo dei soli simboli 0 e 1, già nota a Leibniz, e forse addirittura ai Cinesi in epoca precristiana) qualunque informazione poteva esser rappresentata per mezzo di stati fisici semplicissimi, come ad esempio l’apertura o chiusura dei circuiti elettrici; ma già Charles Sanders Peirce (1866) aveva suggerito che coi circuiti elettrici si possono realizzare le operazioni della logica di Boole. Pertanto nel 1937 Claude Shannon, (lo stesso che doveva poi descrivere matematicamente la trasmissione delle informazioni) sviluppando l’idea di Peirce rese possibile il passaggio dalle calcolatrici meccaniche ai calcolatori elettronici, e il prevalere dei computer digitali su quelli analogici. Infine nel 1945 von Neumann, muovendo dal concetto della macchina di Turing, e consapevole che dati e istruzioni non sono che diversi modi di rappresentare informazioni, progettò l’ EDVAC, il primo modello degli attuali computer con un programma immagazzinato in memoria al pari dei dati e articolato in quattro unità: processore, memoria, unità di controllo e unità di input-output.

Più in genereale, la stessa seconda guerra mondiale aveva avuto un ruolo non sottovalutabile per la nascita dei calcolatori della nuova generazione: non soltanto imponendo l’invenzione di strumenti per effettuare velocemente calcoli complessi, ma anche e soprattutto favorendo l’interazione tra scienziati provenienti da discipline differenti, che condivisero l’obiettivo della sconfitta del nemico comune. L’abbattimento degli steccati tra le singole scienze aveva consentito alla comunità di studiosi di incontrarsi ai confini delle aree già strutturate del sapere e di inventare una macchina veramente innovativa come il calcolatore a programma memorizzato. Anche in seguito il progetto di von Neumann non si sviluppò vuoto, e dal 1945 al 1953 egli partecipò a un ciclo di conferenze (le Macy’s Conferences, a New York), in cui specialisti provenienti da ogni area del sapere (antropologia, linguistica, filosofia, psicologia, sociologia, economia, neurofisiologia, matematica, fisica, ingegneria ecc.) discussero le opportunità e le prospettive di una nuova scienza: chiamata “Cibernetica” da Norbert Wiener (1948), la nuova disciplina non aveva uno statuto epistemologico preciso, ma si occupava di meccanismi a retroazione (feed-back) animali e artificiali. Le discussioni di questo gruppo che comprendeva tra i suoi membri il meglio degli scienziati di punta degli Stati Uniti ebbero un ruolo di primo piano nell’evoluzione dell’informatica.

Mario Alai, Teresa Numerico

Home Tour virtuale Sezione 3 Approfondimenti