![]() |
|
![]() |
||||
![]() |
DOCUMENTS
elab.immagini
galileo
realtà virtuale
vrml
biomeccanica
esapodi
formula1
intelligenza
Papers
meccanica
sistemi
robotica
Il Meccanicismo
Nicolaj Kopernik e Galileo Galilei sono alla base di tutto il moderno pensiero scientifico. Il primo, confutando l'ipotesi geocentrica di Tolomeo, fece crollare il millenario castello della filosofia aristotelica e dimostro' che il senso comune e' spesso in contraddizione con la realta' del mondo. Il secondo scopri' come applicare il metodo astratto di Euclide a una disciplina che non era astratta come la Geometria, ma era invece pratica come la Fisica, postulando in tal modo che la natura sia interpretabile con leggi matematiche. Fu la logica conseguenza di tanta rivoluzione del pensiero se, verso la meta' del secolo diciasettesimo, Thomas Hobbes ipotizzo' che il pensiero umano consista di calcoli matematici che hanno come termini non soltanto "numeri" ma, piu' in generale, "simboli".La scienza moderna poggia su due assunti fondamentali che erano impliciti nel pensiero di Rene' Descartes: (1) la Matematica e' uno strumento astratto, che tratta le relazioni astratte che possono sussistere fra entita' astratte; e (2) ogni disciplina relativa a uno specifico lo dominio (per esempio la Fisica, che e' relativa al dominio degli oggetti) possa essere studiata identificando le entita' astratte della Matematica con le entita' concrete del suo dominio (per esempio, masse e moti) ed identificando le relazioni astratte della Matematica con le relazioni concrete del suo dominio (per esempio, quella fra massa e moto). In tal modo l'apparato logico e' lo stesso per tutte le discipline e puo' essere raffinato come una disciplina astratta a se' stante, mentre ogni disciplina pratica puo' concentrarsi nell'indagine sperimentale. Cio' che Descartes aveva scoperto era la relazione fra il simbolo e cio' che il simbolo rappresenta.
Non stupisce pertanto che il concetto moderno di "mente" nasca proprio con Descartes, il quale abbandona le tradizionali speculazioni metafisiche sull'anima per volgersi allo studio delle funzioni mentali. Descartes elimino' del tutto gli ultimi residui di animismo a favore di un modello di stretta interazione fra mente (rex cogitans) e corpo (rex extensa), tale per cui l'una determinava il comportamento dell'altro (tramite il sistema nervoso) e viceversa (tramite il sistema percettivo). Descartes accetto' inoltre i risultati della medicina, che tendevano a porre nel cervello il centro motore del corpo, e di conseguenza facevano del cervello la sede ideale della mente. In cio' dava ragione a Ippocrate, che per primo aveva eletto il cervello a sede dell'intelletto, e contraddiceva Aristotele, che vedeva nel cuore la sede naturale dei processi mentali. Aristotele, in compenso, aveva gia' fatto notare che di tutti gli animali l'uomo era quello che aveva il cervello piu' grosso in rapporto al corpo e in tal modo aveva "suggerito" ai posteri come dimostrare scientificamente la superiorita' dell'uomo sugli altri animali.
Gli empiristi inglesi sostennero invece che il primato spettasse addirittura ai sensi perche' la conoscenza deriva soltanto dall'esperienza (John Locke) e l'esperienza e' soltanto percezione (George Berkeley) compresa la mente stessa (David Hume); inoltre i processi mentali sarebbero causati da associazioni di processi piu' elementari (David Hartley). La visione di Locke conteneva gia' in embrione tutte le conseguenze dell'empirismo: la mente inizialmente non possiede alcuna conoscenza; l'esperienza viene organizzata in associazioni via via piu' complesse che danno origine alla complessita' dei nostri pensieri. In Hume si coglie lo spirito dell'era di Isaac Newton, nella quale il calcolo matematico e' riuscito a spiegare le leggi della Natura sotto forma delle tre leggi della Meccanica: Hume e' infatti convinto che sia possibile formulare leggi meccaniche anche per la mente, in particolare leggi analoghe a quella dell'attrazione gravitazionale, che renderebbero conto anche del meccanismo delle associazioni. Il modello cognitivo derivato dagli empiristi e' pertanto puramente meccanicistico: le percezioni costruiscono i processi mentali tramite associazioni via via piu' complesse (James Mill).
Il pensiero positivista portato in auge da Auguste Comte intorno al 1823, nemico della teologia e della metafisica e affascinato dalla civilta' industriale, conferi' invece un primato assoluto alla struttura del cervello, nella convinzione che anche i processi mentali fossero processi fisici. A rivedere l'empirismo inglese in termini positivisti fu John Stuart Mill, per il quale tutta la conoscenza umana (compresa quella logica) e' si' di natura empirica, ma il processo che presiede alla sua acquisizione e' quello dell'induzione, giustificato dal fatto che la Natura presenta un'assoluta regolarita'. Per induzione si intende la possibilita' di derivare una legge universale da un certo numero di dati empirici.
Non a caso il passo successivo nella comprensione dei fenomeni mentali venne compiuto dalla Fisiologia, fondata scientificamente da Johannes Muller a partire dal 1833. Grazie ad essa si pervenne a una comprensione piu' accurata dell'anatomia del cervello. Gli esperimenti di Franz Gall e poi di Paul Broca, per esempio, misero in luce che alcune funzioni mentali erano localizzate in parti limitate del cervello. Dopo che Theodor Schwann ebbe enunciato l'ipotesi che il cervello sia composto di cellule, il microscopio consenti' di osservare i singoli "neuroni" e di scoprire cosi' anche le "sinapsi" che li connettono.
Nella seconda meta' del secolo i fisiologi adottarono alcune tecniche sperimentali (la rimozione di parti del cervello o la stimolazione elettrica della corteccia cerebrale) che fecero compiere rapidi progressi nella comprensione del funzionamento del cervello. Al tempo stesso Ernst Weber, Gustav Fechner e Hermann von Helmholtz misurarono quantita' relative a fenomeni mentali (rispettivamente: la percezione dei pesi, l'intensita' della sensazione in funzione dell'intensita' dello stimolo, la velocita' degli impulsi nervosi), iniziando in tal modo a trasformare lo studio della mente in una scienza matematica. Emil du Bois-Reymond dimostro' che gli impulsi nervosi sono trasmessi per via elettrica (1843) e chimica (1877), e Richard Caton (1875) scopri' che il cervello produce correnti elettriche, il principio che e' alla base dell'elettro-encefalogramma di Hans Berger (1929).
In quegli anni (1867) Helmholtz propose la teoria della percezione che sarebbe rimasta in voga per almeno un secolo: (a) l'organismo e' isolato dal mondo esterno; (b) l'unico canale di comunicazione con il mondo esterno e' dato dai segnali nervosi; (c) i segnali nervosi non hanno in se' alcun significato; (d) il loro significato viene appreso per induzione, esattamente come il linguaggio; (e) la percezione e' pertanto un fenomeno dovuto alla conoscenza. Helmholtz si rese soprattutto conto che la stragrande maggioranza dell'elaborazione delle percezioni viene compiuta dall'organismo in maniera inconscia: le nostre "aspettative" derformano i dati sensoriali finche' non viene trovato un compromesso fra cio' che i dati dicono e cio' che la mente si aspetta. L'aspettativa, o "vorstellung", ha origine dall'esperienza secondo un qualche processo evolutivo, ed e' tale vorstellung a guidare le "inferenze inconsce" che determinano le nostre percezioni.
A partire da Francis Galton (1869) ebbe inizio la moderna "psicometria", che si proponeva di "misurare" l'intelligenza (per esempio, tramite i test ideati da Alfred Binet nel 1905). Il valore dell'intelligenza di un individuo veniva sostanzialmente riferito alla sua abilita' nel risolvere problemi sempre piu' complessi. Sia i neurofisiologi sia gli psicologi statistici misuravano una quantita' che assumevano essere invariante rispetto ai fattori ambientali (come il "fattore generale" introdotto da Charles Spearman nel 1923). Si veniva cosi' formando l'idea moderna di "intelligenza". Nel 1921 alla prima conferenza su tale soggetto nessuno degli scienziati che vi convennero seppe peraltro proporre una definizione convincente di cosa fosse l'"intelligenza" di cui essi dibattevano. Se per Colvin "intelligenza" era la capacita' di adattarsi all'ambiente, se per Henmon era equivalente a "conoscenza", per Dearborn era la capacita' di imparare dall'esperienza e per Woodrow era tout court la capacita' di aumentare le proprie capacita'.
Nonostante l'interesse generato per la macchina gia' alla fine del secolo scorso, fu soltanto negli anni Quaranta che si fece largo l'idea di una "scienza dell'artificiale", intendendo per "artificiale", in opposizione a "naturale", cio' che viene prodotto dell'uomo invece che della Natura. L'artificiale viene normalmente costruito utilizzando le leggi della Natura scoperte dalle scienze naturali, e pertanto si riferisce sempre, esplicitamente o implicitamente, a modelli naturali (alla caduta di un sasso, alla spinta di un fiume, al calore del fuoco, e cosi' via). Il fascino dell'"artificiale" e' pero' duplice: da un lato, per quanto si avvicino ai modelli della Natura, i prodotti dell'uomo non riescono mai a imitarli completamente, lasciando intuire una fondamentale inadeguatezza del programma scientifico; dall'altro costituiscono degli strumenti molto piu' utili dei loro modelli naturali, perche' e' ben definita la loro "funzione" (il loro comportamento puo' essere descritto in termini di comandi a cui sanno reagire). Al crescere della complessita' delle macchine (e del loro grado di autonomia) si venne sempre piu' raffinando la discussione su questi aspetti dell'"artificiale", fino a far intuire la possibilita' di poter istituire, accanto alle scienze del naturale, anche le scienze dell'artificiale.
La prima scienza dell'artificiale fu forse la Cibernetica. Essa venne fondata da Norbert Wiener nel 1947 con l'obiettivo di studiare i concetti di "controllo" e di "comunicazione" che sono alla base del comportamento tanto degli animali quanto delle macchine. Che l'uomo fosse una macchina era gia' stato ipotizzato da Democrito e asserito compiutamente nel 1748 da Julien LaMettrie (che scrisse forse il primo trattato in merito), ma Wiener fu il primo a formalizzare la teoria dell'"uomo-automa".
Il precursore delle idee di Wiener era stato semmai Kenneth Craik. Nel 1943 questi aveva sviluppato una teoria secondo la quale il cervello umano opererebbe in modo simile a quello delle macchine. In particolare i meccanismi del cervello sarebbero in grado di costruire modelli interni del mondo e l'azione verrebbe prodotta elaborando tali rappresentazioni interne. Nella visione "funzionalista" di Craik i fenomeni mentali dipenderebbero non dalla struttura del cervello, ma dal modo in cui esso e' funzionalmente organizzato. Il modello di Craik costituiva un significativo passo avanti rispetto alla tradizione cartesiana: l'automa cartesiano era un organismo in grado unicamente di rispondere con delle azioni meccaniche a certi stimoli esterni (batteri e protozoi sono esempi di automi cartesiani); l'automa craikiano trasformava invece gli stimoli esterni in una rappresentazione del mondo, rifletteva su tale rappresentazione e poi produceva l'azione (gli insetti sono esempi di automi craikiani). Nel modello di Craik la conoscenza era una rappresentazione di simboli e l'inferenza era una manipolazione di simboli.
L'eredita' piu' importante lasciata dalla cibernetica furono alcuni concetti che avrebbero trovato un utile impiego in diverse altre discipline. Il primo e' quello di "feedback", che e' il cuore dell'intera cibernetica: il feedback e' il fenomeno per cui l'output di un organismo viene restituito in input all'organismo stesso. E' il feedback che consente l'"omeostasi", il fenomeno per cui un organismo tende a compensare le variazioni nell'ambiente esterno per mantenere una propria stabilita' interna, un concetto introdotto nel 1932 dal fisiologo Walter Cannon a proposito della regolazione della temperatura da parte del corpo umano ma che vale anche per i comuni termostati dei sistemi di riscaldamento che mantengono costante la temperatura di una stanza. E' il feedback, in altre parole, che presiede ai fenomeni di adattamento dell'organismo all'ambiente. Per esempio, quando vogliamo afferrare un oggetto che si sta muovendo in maniera casuale (come una foglia che cade) dobbiamo continuamente ricalibrare la mira per tener conto della sua reale posizione. Se ci limitassimo a calcolare una traiettoria probabile e il corrispondente movimento del braccio necessario per afferrare l'oggetto, difficilmente riusciremmo nell'impresa. Al tempo stesso troppo feedback renderebbe estremamente lento il movimento, tanto che spesso (come nel caso della foglia) non riusciremmo a compiere il movimento prima che l'oggetto si allontani troppo. Il feedback e' pertanto fondamentale per controllare un organismo, ma va a sua volta controllato. Il feedback e' un processo adattativo e puo' rendere conto dell'intenzionalita' dell'organismo.
Affine a quella di feedback sono anche le idee di ricorsivita', auto-referenza e autologia che hanno a che vedere con sistemi in grado di operare su se stessi. Tramite concetti di questo genere la cibernetica tentava di fornire una descrizione unica delle proprieta' di tutti i tipi di organismi, sia biologici sia meccanici.
Il fascino del feedback derivava proprio dal suo utilizzo in macchine come i motori a vapore di James Watt, che erano in grado di controllare se stesse. Era stato Charles Bell, nel 1828, il primo a paragonare il corpo umano a una macchina (a un sistema idraulico, per l'esattezza). Nel 1877 Eduard Pfluger aveva concepito una teoria "teleologica" della natura secondo la quale ogni processo che abbia un fine tende ad utilizzare il meccanismo del feedback per stabilizzare il proprio output. Due anni dopo Felix Lincke diede la prima teoria unificata del feedback, capace di spiegare tanto il funzionamento di un organo anatomico quanto quello di un apparecchio meccanico.
Attraverso le analisi di Ross Ashby (1956) e altri il concetto di feedback avrebbe portato al programma della cibernetica moderna: inventare un sistema auto-organizzantesi; dove per sistema auto-organizzantesi si intende un insieme (presumibilmente grande) di unita' elementari (presumibilmente molto simili fra di loro) dotato di una struttura (presumibilmente molto complessa) in grado di adattarsi all'ambiente e pertanto di evolversi autonomamente. Un tale sistema avrebbe esibito un comportamento intelligente.
La cibernetica ridefini' numerosi termini d'uso comune adattandone o estendendone il significato in accordo con la tecnologia moderna. Per esempio, il "rumore" in cibernetica sta ad indicare una qualsiasi perdita di informazione durante una trasmissione. Il rumore e' tanto piu' forte quanto piu' il segnale e' disturbato. "Rumore", per esempio, e' anche l'imperfezione di una fotografia: la fotografia costituisce una trasmissione di informazione (da chi ha scattato la fotografia a chi la guarda) e una sua imperfezione fa perdere informazione.
Un'altra idea cruciale divulgata dalla cibernetica fu la differenza fra un apparecchio analogico e un apparecchio digitale. L'analogico e' in grado di trattare quantita' continue, come il termometro che misura la temperatura, mentre il digitale tratta soltanto quantita' discrete, come le lancette dell'orologio che si muovono a scatti e non possono misurare nulla di piu' piccolo del secondo. Per estensione possiamo dire che l'alfabeto e' digitale, mentre l'insieme dei numeri reali e' analogico. Il successo del "digitale" nella societa' tecnologica e' dovuto ad una diversa concezione di precisione che si applica agli strumenti digitali e a quelli analogici. Un termometro misura la temperatura con un certo margine di errore, che puo' essere piccolo a piacere, mentre un orologio o e' esatto o sbaglia di almeno un secondo. Un orologio non puo' sbagliare di mezzo secondo, o di un decimo di secondo, per la semplice ragione che non e' in grado di misurare quantita' cosi' piccole. Questa apparente limitazione si traduce in un enorme vantaggio: se gli unici stati possibili sono zero e uno, lo strumento analogico non misurera' mai ne' l'uno ne' l'altro (dara' sempre risultati che sono o molto vicini allo zero o molto vicini all'uno, ma sempre con qualche margine di errore), mentre quello digitale misurera' sempre e soltanto o zero o uno, non essendo costituzionalmente in grado di misurare altro. La crescente necessita' di precisione ha fatto si' che il "digitale" diventasse sempre piu' preminente. Qualunque forma di calcolo meccanico, anche fra numeri reali, si basa sul principio di convertire innanzitutto i numeri in quantita' digitali (per esempio trasformandone il valore in base due ed esprimendo poi tale valore come una sequenza di zeri e uni). La prima applicazione pratica di questa idea fu l'alfabeto Morse impiegato dai telegrafisti di tutto il mondo.
L'altra ovvia applicazione sono i computer cosi' come li conosciamo. In effetti e' possibile costruire computer analogici. Carver Mead sta studiando architetture in cui i transistor operano su quantita' continue, ovvero circuiti elettrici in cui il valore della tensione e' il valore rappresentato. I problemi che deve affrontare sono pero' di duplice natura. Da un lato la precisione puo' essere ottenuta soltanto ricorrendo a componenti elettronici sempre piu' precisi, e pertanto sempre piu' costosi, mentre nei comuni computer digitali la precisione viene ottenuta semplicemente aggiungendo cifre binarie, ovvero componenti imprecisi ed economici; e comunque non esistono componenti perfetti, ovvero senza margini di errore. Dall'altro lato quantita' continue come la tensione non sono stabili ma tendono a deteriorarsi nel tempo e pertanto e' difficile costruire una "memoria" di esse, mentre nei comuni computer tale instabilita' non incide per nulla (l'instabilita' che farebbe passare dallo stato corrispondente alla cifra uno allo stato della cifra zero e' praticamente impossibile, o richiede comunque un periodo quasi infinito di continuo deterioramento o qualche evento catastrofico come una tempesta magnetica).
I processi della cibernetica fanno spesso riferimento al concetto di "algoritmo". Ogni processo meccanico puo' essere interpretato come una serie di "istruzioni" (di azioni primitive) impartite alla macchina. I complessi ingranaggi di un orologio non fanno che eseguire una complessa serie di istruzioni per calcolare il tempo. Il matematico che dimostra un teorema non fa che eseguire una serie di istruzioni per pervenire alla dimostrazione. Una sequenza finita di istruzioni viene detta "algoritmo". La nozione di algoritmo contiene in se' quella di digitale: la sequenza di istruzioni e' infatti un modo per ridurre in formato digitale il comportamento di un organismo analogico. L'orologio e' la versione digitale di una meridiana: la meridiana rappresenta il tempo in maniera continua, mentre l'orologio avanza di secondo in secondo. Un algoritmo per lavare la propria automobile, per esempio, rende discrete azioni che in realta' vengono compiute in maniera continua: 1. Tira fuori l'auto dal garage; 2. Apri il rubinetto della pompa; 3. Insapona l'auto; 4. Strofina l'auto; 5. Dirigi il flusso dell'acqua verso l'auto; e cosi' via. Un algoritmo molto complesso eseguito in maniera molto rapida puo' dare l'impressione del "continuo": il lettore di dischi digitali emette suoni che appaiono continui all'orecchio umano, benche' non lo siano. Non solo sembrano a tutti gli effetti suoni analogici, ma hanno la precisione del digitale: il "rumore" (le imperfezioni) dei dischi analogici non esiste piu'.
Legato a quello di algoritmo e' il nuovo significato del termine "automa": non piu' un meccanismo antropomorfo, ma semplicemente un meccanismo, concreto o astratto, in grado di eseguire un algoritmo.
I progressi dell'elettromagnetismo e della trasmissione senza fili diedero ulteriore impulso alla cibernetica. Emerse cosi' un concetto destinato ad esercitare un'enorme influenza sul pensiero contemporaneo, quello di "informazione": se la Relativita' e la Meccanica Quantistica avevano conferito preminenza all'energia, causando indirettamente un'infiltrazione del termine in tutte le altre discipline, la cibernetica ebbe l'effetto di diffondere invece il termine "informazione" nella cultura contemporanea, e non sono poche le teorie che da allora ad oggi hanno abbandonato un paradigma fondato sull'energia a favore di uno fondato sull'informazione.
La teoria dell'informazione venne fondata da Claude Shannon (1949) per fornire una teoria matematica del deteriorarsi dell'informazione durante una trasmissione. Il suo modello generale era quello in cui due agenti si scambiano dell'informazione: il primo lo codifica per trasmetterlo sotto forma di segnali elettrici e l'altro lo decodifica per riportarlo al formato originario. Il problema sorge a causa dei dei disturbi (del "rumore") che interviene durante la trasmissione e che pertanto altera il codice trasmesso.
Il concetto piu' importante introdotto da Shannon fu quello di "bit", l'unita' fondamentale di rappresentazione e trasmissione dell'informazione, che puo' trovarsi soltanto in due stati (analoghi allo zero e all'uno, al si' e al no, al piu' e al meno). Una qualsiasi informazione, per quanto complessa, puo' sempre essere codificata in una stringa di bit. In tal modo Shannon illustro' anche come si potesse rappresentare l'algebra booleana degli zeri e degli uni mediante circuiti elettrici e interruttori.
Shannon introdusse anche un'importante analogia con la Fisica. Secondo il secondo principio della Termodinamica un sistema fisico isolato tende a massimizzare l'entropia, la quale e' una misura della distribuzione cauale degli atomi. La "casualita'" viene espressa matematicamente come la distribuzione delle probabilita' che gli atomi occupino gli stati possibili del sistema: massimizzare l'entropia significa rendere tale distribuzione la piu' omogenea possibile. Shannon osservo' che l'entropia e' anche una misura della mancanza di informazione, e infatti una distribuzione e' tanto meno informativa quanto piu' e' omogenea.
E' comunque intuitivo cosa si debba intendere per "intelligente". E' intelligente chi comprenda un discorso in italiano, chi riesca a capire la trama di un film, chi esegua conti rapidamente, chi sappia guidare nel traffico di una grande citta', chi svolga un qualsiasi lavoro non ripetitivo. Sono tutte attivita' che abbiamo ragione di ritenere repertorio esclusivo degli umani. E' meno ovvio decidere se "intelligente" implichi tutte quelle cose insieme o meno: una scimmia che imparasse a guidare per le strade di Roma verrebbe probabilmente considerata "intelligente", anche se non riuscisse a parlare e capire l'italiano, ne' alcuna altra lingua. E' ancora meno ovvio stabilire se certi fenomeni appartengano o meno alla sfera dell'"intelligenza": quasi tutti gli animali sono capaci di riconoscere un suono o un'immagine, le formiche costruiscono formicai di una perfezione e complessita' degne di competere con i grattacieli di New York e gli stessi vegetali sanno reagire nel modo piu' efficace alle condizioni atmosferiche. Sono questi comportamenti "intelligenti"?
Per rispondere alla domanda bisogna addentrarsi dentro il test di Turing e riformulare in termini piu' scientifici cosa si intenda per "esibire lo stesso comportamento dell'essere umano". Possiamo distinguere perlomeno due approcci opposti. L'approccio cognitivo "elenca" quali siano le facolta' indispensabili all'essere umano per poter esibire quel tipo di comportamento: memoria, ragionamento, apprendimento, linguaggio e cosi' via. L'approccio fisiologico ritiene che soltanto simulando il funzionamento del cervello umano sia possibile esibire quel tipo di comportamento.
L'idea di costruire macchine "intelligenti" data almeno dal 1800, quando Charles Babbage ideo' un calcolatore meccanico che subito fece compiere voli di fantasia a piu' di un suo conoscente. Ma e' indubbio che l'interesse odierno per queste ricerche deriva dal fatto di poter utilizzare i calcolatori elettronici, i "computer". L'invenzione del computer pare sempre piu' dominare questa seconda meta' del ventesimo secolo. La societa' post-industriale dell'informazione, che sta emergendo in tutto il mondo, parte dal presupposto di sostituire il movimento virtuale delle informazioni al movimento fisico delle persone: cio' non sarebbe possibile su grande scala se non esistesse una macchina in grado di memorizzare, elaborare e trasmettere grandi masse di informazioni.
E' tuttora dubbio a chi spetti il merito dell'invenzione del computer. Nel 1939 John Atanasoff e il suo assistente Clifford Berry idearono una macchina elettro-meccanica denominata "ABC" (Atanasoff-Berry Computer). Si trattava di un apparecchio a valvole in grado di compiere calcoli digitali impiegando l'algebra booleana. L'idea cruciale era che ogni elemento della macchina potesse trovarsi soltanto in uno stato di "uno" o di "zero", e nulla di intermedio o di maggiore o minore. L'algebra di Boole consentiva di eseguire operazioni su quantita' zero/uno che venivano simulate tramite appositi circuiti elettrici. Atanasoff tento' invano di vendere la sua invenzione a quella che allora era la principale societa' di tabulatrici meccaniche, la IBM. Demoralizzato, rinuncio' a brevettare la sua invenzione, abbandono' le sue ricerche e si impiego' nella Marina in qualita' di specialista in acustica.
Un collega di Atanasoff, John Mauchly, ottenne invece ingenti finanziamenti dai militari per costruire una macchina di quel tipo che fosse in grado di compiere calcoli balistici. Nell'Aprile del 1943 vide la luce il progetto ENIAC (Electronic Numerical Integrator and Computer) che nell'Autunno del 1945 consenti' di pervenire al primo computer interamente elettronico. Fu proprio durante il conflitto mondiale che i governi alleati compresero l'importanza strategica della macchina: in Inghilterra fu Alan Turing in persona, impiegato a decodificare i messaggi cifrati dei tedeschi, a mettere in fuzione la prima macchina calcolatrice (il COLOSSUS, nel dicembre del 1943). Negli USA fu invece John Von Neumann, membro del team "atomico" di Los Alamos, a sfruttare l'idea dell'ENIAC per scopi pratici.
Tanto il COLOSSUS quanto l'ENIAC erano in grado di eseguire un solo compito, quello per cui erano stati costruiti. Alla fine della guerra i centri di ricerca dell'esercito statunitense misero a punto i primi computer a valvole che erano in grado di eseguire piu' di un compito. Nacque cioe' il concetto di "programma" tramite il quale al computer venivano forniti due insiemi di informazioni: le "istruzioni" su come svolgere il proprio compito e i "dati" su cui eseguire tale compito. Per l'esattezza il programma forniva la sequenza di istruzioni, e fra queste istruzioni alcune specificavano come ottenere i dati (normalmente veniva richiesto all'operatore di introdurli da tastiera ad un certo momento durante l'elaborazione del programma). Il programma poteva, per esempio, fornire le istruzioni su come si esegue la moltiplicazione e al tempo stesso richiedere all'operatore i due numeri da moltiplicare. Il computer era in grado di memorizzare nei suoi circuiti tanto le istruzioni quanto i dati, di eseguire in sequenza le istruzioni e di prelevare e modificare i dati quando le istruzioni lo specificavano.
L'idea che il computer dovesse essere composto da una "memoria" per i dati e le istruzioni e da una "unita' di elaborazione" in grado di eseguire sequenzialmente le istruzioni era di Von Neumann (1945), e pertanto quella architettura di computer viene tuttora chiamata "architettura Von Neumann".
Non sarebbe stato possibile costruire computer di grosse dimensioni se in concomitanza non fosse stato inventato il transistor. Il transistor nacque ai Bell Labs nel 1948 e apri' le porte alla realizzazione di computer puramente elettronici di grande complessita'.
Il piu' famoso computer di questa generazione fu lo UNIVAC, costruito nel 1950 dalla Electronic Control, la societa' di Mauchly e di Presper Eckert. Una volta acquistato dalla Remington Rand, lo UNIVAC divenne il primo computer prodotto per scopi commerciali. Lo UNIVAC era dotato di una telescrivente che fungeva sia da tastiera, per consentire di fornire dati e istruzioni al computer, sia da stampante, per consentire al computer di scrivere i risultati.
L'idea di programmare il computer tramite sequenze di istruzioni porto' al concetto di "linguaggio di programmazione". Affinche' il computer potesse elaborarle, occorreva che le istruzioni fossero scritte secondo una sintassi predefinita in accordo con i circuiti elettronici che l'avrebbero poi elaborata. Si identificarono i tipi di istruzione necessari (per esempio: preleva un dato, memorizza un dato, esegui un'operazione booleana sui dati, altera la sequenza di istruzioni e cosi' via) e ad ognuna venne associata una sintassi utilizzando delle parole d'ordine convenzionali (per esempio: PRELEVA, MEMORIZZA, OR, AND, NOT e cosi' via) seguite dai parametri necessari (per esempio: OR 1 0).
Il concetto piu' importante introdotto in questo periodo fu forse quello di "variabile": scrivendo OR A B (dove OR e' la parola d'ordine, mentre A e B sono due "variabili") si specifica che a fronte di questa istruzione il computer deve prendere il valore attuale di A e il valore attuale di B ed eseguire l'operazione booleana di OR su quei due valori. Il vantaggio e' che A e B possono assumere diversi valori nel tempo e la stessa istruzione viene utilizzata per compiere tutti gli OR fra i valori che A e B assumono nel tempo. Un programma per calcolare l'OR di due numeri qualsiasi si puo' esprimere, per esempio, cosi': 1. CHIEDI A; 2. CHIEDI B; 3. OR A B; 4. RISPONDI. L'istruzione 1. fa si' che il computer chiedesse l'introduzione da tastiera del valore di A, e cosi' l'istruzione 2. per quello di B, mentre la 3. esegue l'OR dei due valori e la 4. scrive il risultato sulla stampante.
Nel 1953 John Backus alla IBM invento' quello che sarebbe rimasto a lungo il linguaggio di programmazione piu' famoso: il FORTRAN. Il FORTRAN consentiva di comunicare al computer una ventina di tipi di istruzione. In particolare il FORTRAN eseguiva la conversione da decimale a binario. In altre parole, consentiva all'operatore di usare come dati i comuni numeri naturali e reali e altresi' di eseguire su di essi le comuni operazioni aritmetiche. Una tipica istruzione FORTRAN e': I = J * 26 / 4 (il nuovo valore della variabile I e' dato dal valore della variabile J moltiplicato per 26 e diviso per 4). Il primo proramma FORTRAN venne eseguito il 20 Aprile 1957. Fu quello l' atto di nascita ufficiale del business informatico. Negli anni seguenti sarebbero stati proposti numerosi linguaggi di programmazione: ciascuno differisce dagli altri per i tipi di istruzione che consente di comunicare al computer.
Nel decennio successivo i computer si diffusero in tutto il mondo industrializzato, ma il pubblico continuo' a lungo ad esserne escluso. Erano macchine di grandi dimensioni, stracolme di luci e di pulsanti, che soltanto pochi specialisti al mondo erano in grado di operare. I "mainframe" della IBM (a cominciare dal glorioso "360" del 1964, progettato da Gene Amdahl secondo i canoni di Von Neumann) dominarono questo periodo e coniarono quello che sarebbe rimasto il paradigma fondamentale della scienza dell'informazione: eseguire calcoli molto in fretta, molto piu' in fretta degli umani. Il mainframe sostitui' intere legioni di impiegati nei casi in cui i conti da eseguire erano ripetitivi (per esempio per calcolare le paghe a fine mese) e consenti' di compiere conti (soprattutto per scopi scientifici) che prima avrebbero richiesto l'intera vita del matematico piu' veloce.
Benche' i benefici del computer fossero gia' evidenti, soltanto con la generazione dei computer "compatti", quella dei circuiti integrati (inventati da Robert Noyce nel 1960) e del VLSI (very large scale integration), che consente di comprimere milioni di transistor in un circuito integrato di pochi millimetri quadri, i loro effetti si fecero sentire anche sull'uomo della strada. A far compiere una prima rivoluzione fu la Digital Equipment Corporation, che ideo' nel 1970 quello che sarebbe rimasto l'archetipo di "mini-computer", il PDP-11. Era un computer di dimensioni (e prezzo) molto piu' ridotte, ma non meno utile. Fu grazie al PDP che il computer entro' in tutte quelle piccole industrie che mai si sarebbero potute permettere di possedere un mainframe.
L' avvento dei micro-processori (inventati da Noyce alla Intel nel 1968) consenti' nel 1976 alla Apple di costruire un computer delle dimensioni addirittura di una macchina da scrivere. L'APPLE II segno' l'avvento della frenetica era del personal computer, compatto ed economico, che avrebbe portato il computer, se non in ogni casa, certamente in ogni ufficio.
Piu' che l'evoluzione del cosiddetto "hardware" del computer (i circuiti elettronici e la meccanica che lo compongono) e' interessante seguire l'evoluzione del "software", ovvero dei programmi che gli vengono sottoposti. Se all'inizio l'enfasi era soprattutto sull'hardware, ben presto ci si comincio' a rendere conto che l'"intelligenza" della macchina (ammesso che tale potesse essere considerata) risiedeva nel suo software. Era il software, non l'hardware, a determinare il suo comportamento. Cambiando istruzioni si cambiavano le risposte, mentre cambiando circuiti elettrici si aumentava soltanto la sua velocita' nel fornire quelle risposte.
L'idea era gia' chiara a Turing, Von Neumann e gli altri iniziatori della scienza informatica, anche perche' era stato immediato riconoscere l'analogia fra i "linguaggi di programmazione" dei computer e i linguaggi della logica matematica. Entrambi erano linguaggi artificiali inventati per poter rappresentare il mondo ed eseguire ragionamenti su tale rappresentazione. Tutto cio' che il computer "sapeva" era dovuto a cio' che gli era stato comunicato tramite il linguaggio di programmazione, ovvero l'insieme dei suoi programmi, ovvero il suo software.
Se il software era sufficientemente sofisticato, il computer poteva esibire un comportamento piu' "intelligente" di quello di un semplice esecutore di calcoli. La differenza principale fra i linguaggi artificiali dei logici e i linguaggi di programmazione dei computer era data dalle entita' elementari: rispettivamente simboli e numeri. Il computer era in grado di operare su variabili che contenevano valori numerici, non era in grado di operare su simboli come "persona" e "Mary".
Merito di John McCarthy fu quello di inventare il linguaggio di programmazione LISP, in grado di elaborare anche simboli. McCarthy non fece che esprimere nei termini del computer il concetto di funzione ricorsiva introdotto da Hilbert nel 1925 e utilizzare il calcolo Lambda formalizzato da Church nel 1941 per compiere operazioni su tali funzioni. L'importante innovazione di McCarthy consiste nell'aver esteso quei concetti (originariamente pensati soltanto per le funzioni numeriche) anche al calcolo simbolico.
Esattamente come il FORTRAN aveva consentito di usare operazioni decimali, anche se l'hardware del computer era (ed e') capace soltanto di operazioni binarie, cosi' il LISP consentiva di usare simboli anche se l'hardware era (ed e') capace di operare soltanto su numeri (anzi su due soli numeri: zero e uno). Come il FORTRAN si faceva carico di "tradurre" le operazioni decimali in operazioni booleane, in modo che diventassero comprensibili dall'hardware, cosi' il LISP si preoccupava di tradurre i simboli in numeri.
Fu proprio McCarthy nell'estate del 1956 a radunare gli scienziati che studiavano come rendere intelligenti le macchine. A Dartmouth McCarthy conio' cosi' il termine "Intelligenza Artificiale". Grazie all'invenzione del LISP divenne possibile andare oltre i calcoli numerici ed iniziare ad esplorare le funzioni cognitive della mente umana. Il LISP divenne in breve la lingua franca della comunita' dell'Intelligenza Artificiale.
In quegli anni il modello prevalente fu quello proposto nel 1957 da Allen Newell e Herbert Simon, secondo il quale tanto la mente umana quanto il computer sono esempi di "sistemi simbolici fisici" (per usare un termine che gli autori coniarono nel 1975), ovvero elaboratori simbolici. L'intelligenza viene allora indirettamente definita come la capacita' di elaborare simboli. Questa, plausibile o meno che sia dal punto di vista psicologico, e' la prima definizione mai data di intelligenza che possa servire da fondamento a una vera scienza.
Il LISP di McCarthy migliorava e completava in effetti le idee contenute nel linguaggio di programmazione IPL-V (Information Processing Language) progettato da Newell e Simon. Newell e Simon costruirono anche il primo programma che facesse uso delle loro idee, un cosiddetto "Logic Theorist" che era in grado di dimostrare teoremi dei "Principia Mathematica" di Russell e Whitehead. La grande novita', ancora una volta, era l'enfasi sul paradigma dell'"elaborazione dell'informazione".
McCarthy espresse questo modello in termini piu' informatici: il problema dell'Intelligenza Artificiale e' da un lato epistemologico, di rappresentare cio' che conosciamo sotto forma di simboli, e dall'altro euristico, di rappresentarlo in modo che sia poi possibile eseguire dei ragionamenti. Il modello calzava alla perfezione con gli sviluppi della Logica moderna e riprendeva, in realta', le idee di Craik adattandole all'era del computer.
Aristotele riferiva le sue proposizioni agli universali (cioe' agli insiemi), ma dopo la rivoluzione cartesiana le proposizioni vennero intese come relazioni fra idee. In tal modo le leggi della logica divennero le leggi del pensiero. Fu poi Immanuel Kant il primo a intendere le proposizioni come concetti applicati ad oggetti.
Un altro dei momenti fondamentali nello sviluppo del pensiero logico fu dovuto ad Euclide, che nel quarto secolo avanti Cristo raccolse negli "Elementi" tutto il sapere geometrico dell'epoca. Euclide strutturo' l'opera con grande rigore: da alcune definizioni primitive (per esempio, "punto e' un ente geometrico che non puo' essere suddiviso in enti geometrici piu' elementari") e da cinque assiomi, o postulati, che mettono in relazione gli enti primitivi (per esempio, "tutti gli angoli retti sono uguali") Euclide deduce ogni altra nozione di geometria (ogni altro "teorema"). Tale deduzione consiste nell'applicare gli assiomi e i teoremi man mano dimostrati ad altri assiomi e teoremi fino ad ottenere il nuovo teorema.
Il concetto euclideo di una geometria come teoria astratta delle quantita' continue si dilato' nei secoli successivi, prima venendo posto direttamente in relazione con le figure fisiche (grazie alla teoria della prospettiva di Leonardo Da Vinci) e poi venendo a rappresentare una proprieta' stessa dello spazio infinito, omogeneo e tri-dimensionale (grazie alla rivoluzione copernicana e grazie alla teoria della gravita' di Newton). Euclide con il suo quinto postulato (che due rette parallele non si incontrano mai) fu causa involontaria dell'innovazione concettuale piu' saliente dei secoli successivi. Quel quinto postulato sembrava non essere altrettanto "naturale" quanto gli altri quattro e pertanto diversi matematici tentarono di dimostrare che fosse possibile dimostrarlo a partire dai primi quattro. Girolamo Saccheri, in particolare, propose di ragionare per assurdo, prendendo come assioma l'opposto del quinto postulato e dimostrando che in tal modo si perveniva a una contraddizione. Non solo non pervenne ad alcuna contraddizione, ma altri matematici scoprirono che il nuovo sistema assiomatico cosi' costruito, nonche' ogni altro che assumesse una diversa variante del quinto postulato, definivano semplicemente delle geometrie diverse da quella di Euclide. Quella di Bernhard Riemann (1854) sarebbe stata utilizzata da Albert Einstein per la sua teoria generale della relativita': geometria e fisica risultano strettamente collegate perche' i fenomeni che si svolgono nello spazio influenzano lo spazio stesso (con l'importante conseguenza per Einstein che le leggi dei fenomeni fisici sono invarianti rispetto ad ogni osservatore). Non solo le geometrie non-euclidee erano possibili, ma addirittura una di esse si scopriva essere quella piu' idonea a spiegare l'universo. Con le geometrie non euclidee si compiva pertanto una rivoluzione di pensiero di portata ben piu' vasta: veniva messo in discussione il concetto stesso di verita' assoluta.
Tanto il sillogismo di Aristotele quanto il sistema assiomatico di Euclide furono comunque i modelli principali per il pensiero logico dei secoli successivi. Al tempo stesso le nuove interpretazioni che essi vennero man mano assumendo contribuirono a generare il bisogno di una Logica che meglio si prestasse a definire il pensiero scientifico.
I contributi di diversi matematici del diciannovesimo secolo portarono cosi' a un programma di rifondazione della Matematica. George Boole aveva pubblicato nel 1817 le sue leggi dell'algebra binaria caratterizzate dai tre operatori:
.nf 0 AND 0 = 0 0 OR 0 = 0 NOT 0 = 1 0 AND 1 = 0 0 OR 1 = 1 NOT 1 = 0 1 AND 0 = 0 1 OR 0 = 1 1 AND 1 = 1 1 OR 1 = 1 .fi
Quegli zeri ed uni potevano naturalmente essere utilizzati anche per rappresentare i concetti di falso e di vero. Stabilito che una proposizione e' vera se il suo valore "di verita'" e' uno, e viceversa, l'algebra booleana puo' essere interpretata cosi': la congiunzione di due proposizioni vere e' ancora vera, la congiunzione di una proposizione vera e di una falsa e' falsa, e cosi' via. Charles Peirce avrebbe in seguito sviluppato il semplice formalismo delle tavole di verita' per stabilire se una proposizione complessa (formata da piu' proposizioni semplici unite fra di loro da connettivi logici AND, OR e NOT) sia vera o falsa in dipendenza dei valori delle proposizioni che la compongono.
La differenza fra "intensione" ed "estensione" si deve invece a William Hamilton. A un qualsiasi aggettivo possiamo associare due entita' profondamente diverse: il concetto che definisce e l'insieme degli oggetti che vi appartengono. Per esempio, l' estensione di "rosso" e' l' insieme di tutte le cose rosse; l' intensione di "rosso" e' l'idea dell' essere rosso.
Friedrich Frege (1884) aveva poi iniziato la ricostruzione della Matematica su basi logiche, sviluppando la Logica delle Proposizioni e la Logica dei Predicati del primo ordine, un programma a cui avevano contribuirono Peano con i suoi cinque postulati per i numeri naturali (1889) e David Hilbert con la sua teoria dei sistemi formali (1899).
Definendo "proposizione" un'entita' che puo' essere soltanto vera o falsa, definendo le operazioni booleane (AND, OR, NOT) sulle proposizioni e definendo infine gli assiomi e le regole di inferenza (in particolare il modus ponens), i matematici potevano costruire un sistema formale di grande eleganza e potenza. Anche i concetti di tautologia (una espressione che e' sempre vera, per esempio "p o il contrario di p") e di contraddizione (un'espressione che e' sempre falsa, per esempio "p e il contrario di p") potevano essere definiti in maniera piu' formale.
Lo stesso sistema formale applicato al caso dei predicati del primo ordine (ovvero al caso in cui la semplice proposizione "p" diventa un predicato con variabile "p(x)") dava luogo a un sistema di rappresentazione ancora piu' potente, tramite il quale pareva davvero possibile ragionare in termini simbolici su tutti i fatti dell'universo. Anche Frege divideva l'universo in "oggetti" e "concetti": oggetti sono quelli che identifichiamo con l'articolo determinato (l'Italia, la regina Elisabetta, il Mar Mediterraneo), concetti sono quelli che identifichiamo con l'articolo indeterminato (una nazione, un sovrano, un mare). I secondi si possono esprimere tramite predicati come "nazione(X)", che si legge "X e' una nazione" ed e' vero, in particolare, nel caso "nazione(Italia)", poiche' e' vero che "l'Italia e' una nazione", mentre e' falso nel caso "nazione(Elisabetta)", poiche' e' falso che "Elisabetta e' una nazione". Il correlato oggettivo di un concetto e' definibile allora come l'estensione del relativo predicato, ovvero l'insieme di tutti gli oggetti che rendono vero quel predicato (il correlato oggettivo del concetto di "nazione" e' l'insieme di tutte le nazioni del mondo).
E' comune intendere che un predicato "denota" la propria estensione. Il termine "denotazione" e' dovuto a John Stuart Mill (1843), che defini' altresi' la "connotazione", una generalizzazione del concetto di intensione. Per esempio, la denotazione di "uomo" e' l'insieme degli uomini, la sua connotazione e' cio' che significa essere un uomo piu' tutti i concetti implicati da questo, come "animale", "pensante" e cosi' via.
Fin dai tempi di Aristotele lo scopo della logica era stato quello di stabilire la verita' o falsita' di una affermazione. Anche Aristotele aveva sentito il bisogno di imporre innanzitutto una formalizzazione del linguaggio utilizzato per esprimere le affermazioni. Mentre pero' Aristotele classificava le proposizioni in certe categorie (e non tutte le proposizioni potevano essere classificate in una delle categorie note) e definiva poi il processo meccanico per compiere inferenze su tali categorie, ovvero il sillogismo, Frege fornisce lo strumento deterministico (la sintassi della logica dei predicati) per riportare qualsiasi proposizione alla categoria delle proposizioni formali e fornisce poi lo strumento (le regole di inferenza) per compiere deduzioni sulle proposizioni formali. La sintassi delle proposizioni formali viene definita specificando come si generano tutte le possibili proposizioni formali a partire da un insieme di simboli (per esempio, le lettere dell'alfabeto e gli operatori booleani) e applicando reiteratamente alcune regole di combinazione (per esempio, quella che due proposizioni formali connesse da un "OR" sono ancora una proposizione formale).
Che le leggi della logica potessero costituire anche le leggi del pensiero era stato ipotizzato prima da Leibniz e poi da Boole stesso, ma Frege fu il primo a ufficializzare questo ambizioso programma che andava ben al di la' dello scopo originario del sillogismo.
La teoria di Frege aveva un impatto diretto anche sulla tradizione filosofica che poneva nella mente la sede del significato (Locke associava ad ogni parola un'idea, e Descartes dubitava di tutto meno che del significato dei propri pensieri). Un'altra tradizione era infatti quella per la quale il significato e' nel mondo esterno. Fu Frege stesso a far notare come cio' non potesse funzionare: "la stella del mattino" e "la stella della sera" indicano entrambe lo stesso oggetto (Venere), ma hanno intuitivamente due significati diversi; e frasi come "il pianeta piu' vicino al Sole di Mercurio" non indicano nulla che esista realmente, eppure hanno ancora un significato intuitivo. Frege postulo' l'esistenza di un universo astratto dei "sensi" delle cose, che non stava ne' nella mente umana ne' nel mondo esterno, e chiuse il cerchio in questo modo: le cose sono indicate da sensi, le parole esprimono sensi, e i processi cognitivi elaborano sensi. Il "senso" delle cose diventava il mediatore fra le tre entita' fondamentali: il mondo, il linguaggio e la mente.
Frege utilizzo' questo vasto apparato logico-ontologico per dare la definizione di numero (l'1 e' la classe di tutti i concetti la cui estensione ha un solo elemento, il 2 e' la classe di tutti i concetti la cui estensione ha due elementi, e cosi' via) e quindi ricostruire tutta l'aritmetica, ma il suo tentativo falli' poiche' si basava sistematicamente sul concetto di classe, e piu' precisamente sulle classi di classi. Nel 1902 Bertrand Russell scopri' infatti una contraddizione insita nel concetto di classe di classe: la classe delle classi che non appartengono a se stesse o appartiene a se stessa, e in tal caso (per definizione) non appartiene a se stessa, oppure non appartiene a se stessa, e in tal caso (per definizione) appartiene a se stessa. Russell tento' di ovviare al proprio paradosso con una teoria dei "tipi" che sostanzialmente pone delle limitazioni al linguaggio logico (evitando che possano verificarsi dei circoli viziosi), e che Willard Quine e Frank Ramsey avrebbero ulteriormente semplificato tentando a loro volta di ovviare ad alcune arbitrarieta' di Russell (come il famoso assioma di riducibilita'). Ramsey, in particolare, opero' la distinzione fra antinomie logiche, come quella del paradosso di Russell (che possono essere risolte con una teoria dei tipi molto semplificata) e antinomie semantiche, come quella di Epimenide "questa frase e' falsa" (che non possono essere risolte).
Se lo specifico programma di Frege avrebbe rivelato quelle carenze, il formalismo e il metodo da lui introdotti sarebbero durati fino ad oggi e proprio Russell (che nel 1913 pubblico' con Alfred Whitehead i "Principia Mathematica") avrebbe impresso nuovo impulso al programma "logistico" di rifondare tutte le scienze sul calcolo logico. Dal canto suo Hilbert porto' alla massima perfezione il metodo assiomatico di Frege e Peano e al tempo stesso libero' del tutto la Matematica da qualsiasi vincolo di coerenza con la realta': gli oggetti di cui tratta la Matematica possono corrispondere a qualsiasi cosa esibisca quelle proprieta'. Per esempio, il punto di uno spazio non deve necessariamente essere un punto dello spazio tridimensionale che percepiamo, ma puo' essere un qualsiasi oggetto per il quale valgano le stesse relazioni e formule. Cio' fece della Logica lo strumento ideale per costruire e manipolare astrazioni di qualsiasi natura. Secondo Hilbert un sistema formale e' costituito da un linguaggio con cui si possono costruire delle formule, da alcuni "assiomi" (ovvero formule che si assumono vere senza dimostrazione) e da alcune regole di inferenza (ovvero le regole tramite le quali si puo' dimostrare la verita' o falsita' di una formula). La dimostrazione e' una sequenza ordinata e finita di formule tale che: la prima formula sia un assioma, le formule successive si ottengano per applicazione delle regole di inferenza e l'ultima formula sia la formula che si vuole dimostrare (teorema). Il tipo di dimostrazione piu' comune e' in realta' quello della "reductio absurdum": agli assiomi si aggiunge l'opposto della formula da dimostrare e si verifica se da questo insieme di formule sia possibile derivare una contraddizione. Tipiche regole di inferenza impiegate nei sistemi formali sono il "modus ponens" per il calcolo delle proposizioni:
noto che "se p, allora q" .br e noto che "p" e' vero, .br allora anche "q" e' vero.
(per esempio: noto che "se Piero e' nipote di Aldo allora Piero e' cugino di Gisella" e noto che "Piero e' nipote di Aldo", si deduce che "Piero e' cugino di Gisella");
e l'"universale" per il calcolo dei predicati: se qualcosa e' vero per tutti gli elementi di un insieme, allora e' vero anche per un particolare elemento dell'insieme (per esempio: noto che "tutti gli uomini sono mortali", e noto che "Socrate e' mortale", si deduce che "Socrate e' mortale"). In linguaggio formale:
L'obiettivo originario di Hilbert era quello di dimostrare la non-contraddittorieta' della Matematica, ma anche il programma di Hilbert, come quello di Frege, sarebbe fallito, e per una ragione ancor piu' seria: il teorema di Godel ne avrebbe dimostrato l'impossibilita'. Kurt Godel dimostro' infatti nel 1931 che la Logica esibiva un grave problema di fondo, un chiaro limite alla sua affidabilita' come strumento per conoscere l'universo: Godel dimostro' che ogni sistema formale contenente la teoria dei numeri contiene sempre almeno un'affermazione che non puo' essere dimostrata ne' vera ne' falsa in base al sistema stesso (un'affermazione "indecidibile"). Ogni sistema formale di tale genere deve infatti necessariamente contenere una proposizione del tipo "io non sono dimostrabile", e, se il sistema e' non-contraddittorio, ne' questa proposizione ne' il suo opposto risultano dimostrabili all'interno di quel sistema. (Pochi anni dopo Church avrebbe dimostrato che tanto l'aritmetica quanto la logica dei predicati del primo ordine sono indecidibili, mentre la logica delle proposizioni e' ovviamente decidibile con le comuni tavole di verita').
Il formalismo di Hilbert sarebbe comunque rimasto in vigore nella Logica moderna come il linguaggio comune di tutte le scienze esatte.
Non meno influente fu l'opera parallela di Ernst Zermelo, che nel 1908 riprese e rifini' la teoria degli insiemi fondata da Georg Cantor. Un quarto di secolo prima Cantor aveva introdotto il concetto di insieme per risolvere diversi problemi relativi ai numeri irrazionali ed era pervenuto indubbiamente a risultati importanti e suggestivi, in particolare alla definizione di insieme infinito (ogni insieme i cui elementi sono in relazione biunivoca con gli elementi di una sua parte), ma la sua teoria era piuttosto macchinosa e non riusciva a rispondere alla domanda: l'insieme di tutti gli insiemi contiene anche il proprio insieme-potenza?
Zermelo la semplifico' utilizzando soltanto uno dei tre tipi di insiemi previsti da Cantor, quello definito dai propri elementi (gli altri due erano quello definito dalle proprie proprieta' e quello infinito). Fra due insiemi sono possibili le operazioni di intersezione (l'insieme degli elementi che appartengono ad entrambi gli insiemi operandi) e di unione (l'insieme degli elementi che appartengono ad almeno uno dei due insiemi operandi) e di un insieme si puo' prendere il complemento (tutti gli elementi che non gli appartengono). Queste tre operazioni fondamentali possono essere messe in relazione con quelle dell'algebra booleana: l'uno booleano e' rappresentato dall'insieme universo e lo zero dall'insieme vuoto, l'OR dall'unione di due insiemi e l'AND dalla loro intersezione.
Nel 1935 il programma dei logici venne completato da Alfred Tarski. Tarski diede una semantica ai sistemi formali, ovvero spiego' come un sistema formale potesse "significare" qualcosa. Hilbert aveva portato a termine un programma di emancipazione della Logica dalla realta', nel quale i termini e le formule non dovevano necessariamente significare qualcosa e tanto meno significare cio' che avevano sempre significato in Matematica. Tarski si propose di ridare un senso ai sistemi formali, senza peraltro rinunciare alla liberta' di Hilbert: e' possibile piu' di un sistema formale alla volta, e nessuno e' vincolato agli assiomi e alle regole di inferenza del sistema formale della Matematica, ma a ciascuno deve essere possibile assegnare un significato che lo metta in relazione con il mondo reale. Dato un insieme di formule (una "teoria"), l'"interpretazione" di quella teoria e' una funzione che assegna un significato a ogni sua formula. Tarski fondava cosi' la semantica composizionale, nella quale il significato di una struttura complessa e' funzione delle strutture elementari che la compongono.
Ogni "interpretazione" che renda vere tutte le formule della teoria e' un "modello" di tale teoria. Per esempio, alle formule della Fisica si assegna il significato delle corrispondenti leggi della natura e l'universo degli oggetti fisici diventa un modello della teoria fisica. Se il teorema di incompletezza di Godel poneva in dubbio l'intero programma dei logici, la semantica dei modelli di Tarski consentiva invece di utilizzare per scopi pratici l'apparato tecnico messo a punto fino a quel momento.
In pratica Tarski aggirava l'ostacolo del teorema di Godel con una "teoria delle teorie": chiarito che in nessuna teoria e' possibile definire il concetto di verita' (ovvero tutte le proposizioni che sono vere in tale teoria), il concetto di verita' puo' essere definito soltanto in una nuova teoria che abbia come oggetto quella teoria, appunto una "teoria delle teorie", o "meta-teoria". Quella che Tarski propose era una metateoria semantica, intesa cioe' a ragionare sul significato della teoria oggetto. In tal modo, per esempio, riusciva finalmente possibile risolvere l'antinomia del mentitore ("questa frase e' falsa", che risulta vera quando e' falsa e viceversa).
L'"aritmetizzazione" e' il processo tramite il quale i teoremi di un sistema formale possono essere associati a un insieme di numeri naturali. Grazie all'aritmetizzazione il problema di dimostrare la verita' di una formula puo' essere assimilato a quello di dimostrare che un numero naturale appartiene a quell'insieme. Se cio' e' sempre possibile (esiste un algoritmo per decidere se un numero appartiene all'insieme), l'insieme viene detto "decidibile" o "ricorsivo". Se invece e' soltanto possibile enumerare i suoi numeri, l'insieme viene detto "semi-decidibile" o "ricorsivamente enumerabile". Per la corrispondenza di cui sopra gli stessi termini si possono applicare ai sistemi formali qualora (rispettivamente) sia sempre possibile dimostrare se una formula e' vera oppure sia solamente possibile generare tutte le formule che sono vere.
Un altro concetto importante introdotto da Hilbert e' quello di "ricorsivita'" (diverso dall'accezione comune di "ricorsivo" come usato dalla cibernetica in poi). La ricorsivita' e' sostanzialmente la computabilita' tramite algoritmo: una funzione ricorsiva e' in pratica una funzione che puo' essere programmata. L'utilita' di questa definizione sta in alcuni teoremi della teoria della ricorsivita', in particolare: un predicato p(X) e' decidibile (ovvero esiste un algoritmo che puo' decidere in un tempo finito se quel predicato applicato ad un certo valore della variabile X e' vero o falso) se e solo se la corrispondente funzione p(X) e' ricorsiva.
In matematica una funzione e' una relazione che a un certo insieme di valori di un "dominio" assegna un certo valore di un "contro-dominio". Se la funzione e' binaria, per esempio, essa mette semplicemente in corrispondenza i valori del dominio con alcuni valori del contro-dominio, e si indica
intendendo che A e B siano insiemi, f sia il nome della funzione, e y = f(x) sia l'elemento di B che viene fatto corrispondere da f all'elemento x di A. Piu' in generale una funzione puo' avere l'aspetto
intendendo che fa corrispondere la combinazione di diversi valori a un valore del contro-dominio. Un esempio di funzione, per esempio, puo' essere la funzione di addizione (+), la quale mette in corrispondenza diversi numeri con un nuovo numero: l'addizione
puo' essere riscritta in termini funzionali come
+ (1,2,3,4) = 10
Un altro esempio e' quello della funzione di permutazione (indicata comunemente con il segno di punto esclamativo!), quella che ad un numero intero assegna un altro numero intero dato dal prodotto del numero stesso per di tutti i numeri interi ad esso inferiori:
2! = 2 x 1 = 2 3! = 3 x 2 x 1 = 6 4! = 4 x 3 x 2 x 1 = 24
e cosi' via.
Ogni funzione puo' essere ricondotta alla logica dei predicati in modo banale:
f(a,b) = c
puo' essere espressa come
r(a,b,c) e' vero.
Nel 1925 Hilbert propose che tutte le funzioni computabili fossero costruibili a partire da alcune operazioni primitive. L'insieme delle funzioni che e' possibile costruire con la procedura di Hilbert costituisce l'insieme delle funzioni "ricorsive". Per definizione, essendo definite da un algoritmo, queste sono anche le funzioni che e' possibile programmare.
Il problema della decisione venne studiato, fra gli altri, da Turing nel 1936. Il problema puo' essere riassunto cosi': derivare procedure puramente meccaniche per trovare soluzioni a tutti i problemi matematici. Esiste un metodo matematico per determinare sempre se una soluzione puo' essere ottenuta a partire da una certa situazione? Turing aveva chiara l'importanza della risposta: i problemi che soddisfano il problema della decisione sono risolubili dalla macchina; gli altri non lo sono. Se la risposta al problema della decisione fosse positiva, allora sarebbe possibile costruire una macchina che risolva tutti i problemi della Matematica. Il teorema di Godel poneva comunque un ostacolo insormontabile alla dimostrazione o confutazione di questo teorema: non e' infatti possibile dimostrare che un programma generico giungera' a una fine. Pertanto il problema della decisione e' impossibile.
Turing defini' comunque cosa fosse una funzione computabile tramite una procedura meccanica ideale. Questa procedura, che si suppone venga eseguita su una macchina astratta (la cosiddetta "macchina di Turing"), e' tale che in ogni situazione esiste un'azione da compiere e quell'azione e' la sola da compiere. Per l'esattezza la macchina di Turing dovrebbe funzionare cosi'. Per manipolare simboli della logica dei predicati occorre essere in grado di: leggere i simboli attuali, elaborare i simboli, scrivere nuovi simboli, passare ad esaminare nuovi simboli. Una macchina dovrebbe pertanto essere in grado di compiere le seguenti operazioni elementari su un alfabeto finito di simboli: leggere un simbolo, scrivere un simbolo, spostarsi al simbolo precedente, spostarsi al simbolo successivo, mutare lo stato. A seconda del simbolo che legge e dello stato in cui si trova, la macchina di Turing decide se spostarsi avanti, indietro, scrivere un simbolo, cambiare stato o fermarsi.
E' chiaro che possono esistere infinite macchine di Turing, a seconda di come esattamente eseguano tali funzioni. Turing spiego' anche come costruire una macchina "universale", in grado di simulare tutte le possibili macchine di Turing: e' sufficiente descrivere la specifica macchina di Turing con una sequenza di simboli posti prima dei simboli che dovranno essere manipolati. Il "programma" inventato da Von Neuman per fornire al computer specifiche sequenze di istruzioni non era altro che la traduzione pratica di questa astrazione: dato l'insieme di tutte le possibili macchine risolutrici di problemi (ciascuna risolutrice di uno solo di essi), il computer puo' simulare una qualunque di esse se viene istruito tramite un apposito programma. A seconda del programma il computer simula macchine risolutrici diverse ed e' pertanto in grado di risolvere problemi diversi. Il computer e' pertanto una macchina universale di Turing (ma a memoria finita).
La linea di pensiero di Turing introdusse di fatto due importanti concetti. Innanzitutto ridusse il programma hilbertiano a un problema di elaborazione di simboli. In secondo luogo identifico' l'universalita' di un meccanismo nella possibilita' di partizionare gli input del meccanismo in due classi, le istruzioni e i dati.
Alonzo Church dimostro' nel 1936 che ogni processo di natura algoritmica definisce una funzione matematica appartenente a una classe particolare denominata classe "delle funzioni Lambda". Una delle piu' importanti conseguenze della tesi di Church fu quella di dimostrare che le sole funzioni computabili di Turing sono quelle ricorsive, in quanto la classe delle funzioni Lambda e' la stessa delle funzioni ricorsive e delle funzioni computabili di Turing. In effetti Turing diceva: le uniche funzioni che sono risolvibili da un programma sono quelle decidibili; Godel diceva: le uniche funzioni che sono calcolabili da un programma sono quelle ricorsive. Dicevano la stessa cosa da due prospettive diverse