Dalla TV alla rete RAI Educational

Off-line del 20 maggio 1998

Introduzione ai nuovi media 2/a.
Il computer

di Gino Roncaglia


Nella prima lezione, abbiamo visto come tipi diversi di informazione - dal testo scritto ai suoni e alle immagini - possano essere convertiti in formato digitale, e cioè in lunghe catene di 0 e 1. Ma perché questa conversione si rivela tanto vantaggiosa? Perché disponiamo di strumenti capaci di immagazzinare, manipolare e trasmettere con grande rapidità ed efficienza proprio queste catene di 0 e 1. Si tratta degli strumenti che ci vengono forniti dall'informatica e dalla telematica.

ComputerL'informatica è la scienza che si occupa del trattamento automatico dell'informazione. E' all'informatica che dobbiamo i computer. Senza la rivoluzione informatica, la possibilità di convertire informazione analogica in informazione digitale rappresenterebbe poco più che una curiosità teorica.

La telematica, a sua volta, permette di usare gli strumenti informatici, oltre che per elaborare l'informazione, anche come veri e propri mezzi di comunicazione.

Il computer, come si è detto, è alla base di tutto questo. E' importante quindi capire, almeno a grandi linee, cos'è un computer, e come funziona. E' il compito che cercheremo di affrontare in questa lezione.

La parola inglese computer deriva da computation, ovvero computazione, calcolo; il termine italiano calcolatore rimanda anch'esso direttamente all'idea di calcolo. E il computer è in effetti una macchina nata per eseguire computazioni, calcoli.

Gottfried Wilhelm von LeibnizAttenzione, però: noi abbiamo spesso l'idea - sbagliata - che un calcoilo o una computazione siano operazioni che possano riguardare escludivamente numeri. E abbiamo di conseguenza l'idea - anch'essa sbagliata - che il computer sia unicamente una macchina per maneggiare numeri.

In realtà, l'idea di computazione è più generale. Ogni processo di manipolazione di simboli che parta da una serie di dati iniziali, li modifichi - e cioè li elabori - in base a regole prefissate, e ci fornisca il risultato di queste modifiche, può essere considerato, in senso astratto, come una computazione.

Così, ad esempio, la somma di due numeri è una computazione: i dati iniziali sono i numeri che sommiamo, le regole da seguire sono quelle, familiari, dell'aritmetica, e il risultato sarà il numero che corrisponde alla somma dei due numeri di partenza.

Ma anche l'ordinamento alfabetico di un elenco di parole, e cioè l'operazione che si fa ad esempio per realizzare l'indice di un libro, è una computazione. In questo caso, i dati di partenza saranno costituiti da una serie di parole disordinate, le regole ci forniranno un procedimento dettagliato per ordinarle, e il risultato sarà il nostro bell'indice in ordine alfabetico.

Charles BabbageIn sostanza, dunque, la computazione ha a che fare con una modificazione di stato: si parte da uno stato iniziale, rappresentato dai nostri dati di partenza, si passa in genere attraverso stati intermedi corrispondenti alla progressiva applicazione delle regole di manipolazione dei simboli, e si arriva allo stato finale che ci fornisce il rislutato del processo.

I tentativi di costruire macchine capaci di svolgere computazioni in modo automatico o quasi automatico non sono una novità del nostro secolo. In fondo, rientra in questa categoria già il pallottoliere, una invenzione araba.

Questa che vedete alle mie spalle è invece una macchina calcolatrice costruita alla fine del '600 da Leibniz, il grande filosofo e matematico tedesco al quale dobbiamo anche le prime riflessioni sul calcolo binario.

Ecco un'altra delle macchine di Leibniz - questa poteva eseguire anche semplici moltiplicazioni.

Ma alla radice dei computer contemporanei non sono solo solo macchine da calcolo 'fisiche' come quelle di Leibniz o, prima di lui, di Pascal: sono anche macchine 'ideali', progetti puramente teorici, come la macchina analitica di Babbage, di cui potete leggere nelle dispense, o la macchina di Turing, di cui parleremo adesso.

Alan TuringE' possibile dare una definizione matematica adeguata per il concetto generale di computer, una definizione capace di catturare tutti gli esempi di computer possibili, che siano realizzabili oggi e domani con qualunque tipo di tecnologia? Le macchine di Turing sono proprio questo. Sono un modello matematico ideale che vuole catturare tutti gli esempi di computer possibili. Gli ingredienti che intervengono in una macchina di Turing sono molto semplici. Prima di tutto abbiamo un nastro, potenzialmente infinito. Questo nastro è diviso in maniera discreta in caselle e calcolare attraverso una macchina di Turing significa spostarsi su questo nastro, avendo la possibilità di leggere quello che sta scritto nelle caselle e di stampare, cancellare simboli, passando successivamente in stati di memoria diversi. Quando la macchina di Turing esegue un calcolo per un'operazione o per una funzione matematica, dopo un certo numero finito di passi si ferma, esattamente come fanno i nostri personal computer. Ora un problema teorico molto importante che nasce a questo proposito è il seguente: tutte le volte che noi sottoponiamo un calcolo alla nostra macchina di Turing, la macchina si fermerà? Bene, questa domanda ha una risposta negativa. Come hanno dimostrato Turing e il logico Kurt Gödel, vi sono delle funzioni matematiche che non sono computabili in un numero finito di passi da una macchina di Turing. Questo significa che in certi casi particolari la nostra macchina di Turing può non fermarsi, può andare avanti all'infinito.

La macchina di Turing realizzata in linguaggio Java

Ecco una macchina di Turing, con la quale potete fare esperimenti voi stessi, dato che si tratta di un programma che troverete sia sul nostro CD-ROM, sia su Internet.

Come abbiamo detto, la macchina di Turing è innanzitutto una costruzione concettuale, una macchina teorica. La immaginiamo costituita da tre elementi.

Il primo è un nastro di lunghezza infinita, questo, suddiviso in tante piccole cellette. Ogni celletta può contenere un simbolo, ad esempio uno 0 o un 1.

Macchine da calcolo: comptometerIl secondo elemento che costituisce la macchina di Turing è una testina di lettura/scrittura, questa. La testina è capace di muoversi avanti e indietro lungo il nastro, una cella alla volta. Può inoltre leggere il contenuto della cella su cui si trova, e, volendo, modificarlo.

Il terzo elemento è un insieme di regole che definiscono le situazioni - ovvero gli stati - in cui la testina si può trovare, e le azioni che deve compiere. Ad esempio, una regola potrebbe dire alla testina che se si trova su una casella 0 deve trasformare lo 0 in 1, spostarsi di un passo a destra, e passare ad eseguire la regola successiva.

Ebbene, sembra impossibile ma una macchina di questo tipo, dalle componenti apparentemente così semplici, è in grado di eseguire TUTTE le computazioni che può compiere il migliore dei nostri computer - almeno, dei computer che conosciamo fino ad oggi. Tanto che una definizione di 'computabilità' potrebbe essere proprio questa: è computabile tutto quello che una macchina di Turing può computare.

Macchine da calcolo: lagomarsinoMa vediamo cosa succede quando avviamo la macchina. In questo momento, questa particolare macchina sta sommando due numeri e scrivendo il risultato. Come vedete la testina legge, scrive e si muove lungo il nastro. Lo fa seguendo un insieme di regole, queste.

E' un esempio che, assieme a diversi altri, potete sperimentare voi stessi, con l'aiuto delle dispense e del programma contenuto nel CD-ROM.

Naturalmente una somma è una operazione molto semplice - ma come si è detto la macchina di Turing può compiere computazioni anche molto più complicate. Solo che più è complicata l'operazione, più complicato sarà l'insieme di regole che la macchina deve seguire, e più passi saranno necessari per eseguirla.

I computer che conosciamo funzionano in maniera abbastanza simile a una macchina di Turing, anche se al posto del nastro infinito - evidentemente non realizzabile in realtà - ci sono i cosiddetti registri, ovvero un certo numero di gruppi di celle che, al solito, possono contenete i nostri '0' e '1'.

Un problema importante è il seguente: saremo un giorno in grado di costruire un computer, un robot intelligente, capace di andare oltre i limiti delle macchine di Turing? Ora, le macchine di Turing possono essere equivalentemente sostituite da una macchina a registri, non c'è una differenza in linea di principio tra macchina di Turing e macchina a registri, quindi parlare dei limiti delle macchine di Turing significa parlare dei limiti delle macchine a registri. Ora c'è una tesi molto importante, la tesi di Church-Turing, che dice questo: non andremo mai oltre i limiti delle macchine di Turing, perché calcolare significa calcolare attraverso una macchina di Turing. Naturalmente una tesi come questa è difficilmente dimostrabile, perché non si tratta di un teorema matematico. La tesi di Church-Turing paragona un concetto intuitivo un po' ambiguo con un concetto matematico preciso, il concetto di macchina di Turing.

puntate
torna a calendario
torna a tematiche
search

back

home page

Però la tesi di Church-Turing può essere smentita sperimentalmente. Come può essere smentita? Beh, costruendo delle macchine, sperimentalmente, capaci di fare cose che le macchine di Turing non riescono a fare.

vai alla seconda parte

torna a inizio pagina