Nome generico col quale si indica un dispositivo (meccanico,
elettro-meccanico, elettronico, ecc.), costruito con lo scopo di eseguire
calcoli e algoritmi più o meno complessi. Rientrano quindi in questo
campo tutti i dispositivi creati dall'uomo a tal fine, a partire
dall'
abaco fino ai moderni
c. elettronici. L'abaco fu senz'altro
il primo strumento usato per eseguire i calcoli; esso è noto da
moltissimi secoli e, a quanto sembra, fu introdotto presso diversi popoli
(Egiziani, Cinesi, Aztechi, Greci, ecc.) nel primo millennio a.C. Il suo uso -
in forma più o meno modificata - è tuttora molto diffuso
soprattutto nell'Estremo Oriente. I primi tentativi di costruire una vera e
propria macchina per eseguire le operazioni aritmetiche risalgono però al
1600 e al 1700. Del 1620 è l'invenzione del
regolo c. che è
divenuto, così, comune soprattutto nel campo dell'ingegneria. La prima
macchina in grado di eseguire l'operazione di addizione è la cosiddetta
Pascaline, progettata dal filosofo Pascal e completata nel 1642. Essa era
composta da una serie di ruote, una per ogni cifra (unità, decine,
centinaia, ecc.), componenti i numeri interi. Per eseguire l'addizione si
impostava su tali ruote un addendo, indi si ruotavano le varie ruote in modo da
impostare di nuovo il secondo addendo. La novità che rivela il genio di
Pascal consiste nell'introduzione del riporto automatico, cioè di un
dispositivo che fa avanzare di una unità una ruota, quando quella di
ordine immediatamente inferiore ha compiuto un giro completo. Il riporto
è ancora oggi effettuato nello stesso modo in quasi tutti i
c. da
tavolo. La sottrazione era possibile sulla Pascaline sotto forma di addizione
dei complementi; la moltiplicazione doveva invece venire eseguita come addizione
ripetuta. Non era possibile la divisione. Il successivo tentativo valido
è dovuto al filosofo e matematico Leibniz che tentò di
meccanizzare la moltiplicazione. Un esemplare della sua macchina fu costruito
nel 1671, ma non funzionò benché fosse teoricamente corretto; in
effetti la tecnologia del tempo non era in grado di costruire pezzi aventi la
precisione richiesta. L'idea di Leibniz fu ripresa alcuni decenni dopo
dall'alsaziano Charles Thomas, che nel 1810 realizzò una macchina
calcolatrice che non presentava sostanziali novità, ma che aveva il
merito di essere la prima ad avere una applicazione commerciale. Ne furono
infatti costruiti circa 1.500 esemplari che durarono in uso fino ad una
sessantina d'anni. Anche l'Italia diede un contributo a questo campo con lo
scienziato Giovanni Poleni, inventore di una
macchina aritmetica. Questa
era in grado di eseguire - sia pure dopo una macchinosa predisposizione - tutte
e quattro le operazioni elementari. È interessante notare che Poleni
nella sua macchina (ricostruita su una sua descrizione del 1709) tentò di
rendere meccanico il funzionamento della macchina stessa, che prima di allora
avveniva ruotando una manovella. Il lavoro necessario al movimento delle varie
parti era fornito dall'abbassamento di un peso collegato a una fune che si
avvolgeva su un tamburo. Il vero e proprio pioniere delle macchine calcolatrici
è il matematico inglese Charles Babbage, vissuto dal 1792 al 1871.
Studioso di grande valore in molti campi, nel 1812 iniziò la costruzione
di una
Difference Engine (Macchina delle differenze) con l'intento di
creare uno strumento per il calcolo delle tavole delle funzioni matematiche e in
particolare dei polinomi. La sua intenzione era la realizzazione di una macchina
in grado di calcolare le tavole di polinomi sino al sesto grado con risultati
fino a 20 cifre decimali. A tal fine ottenne un finanziamento del governo;
l'impresa non fu però portata a termine. Alcuni anni dopo lo svedese G.
Scheutz, sulla scorta delle pubblicazioni di Babbage, realizzò
effettivamente una macchina delle differenze per la tabulazione dei valori dei
polinomi fino al quarto grado con risultati precisi fino alla quattordicesima
cifra significativa. Babbage invece si dedicò a partire dal 1832 a una
Analytical Engine (macchina analitica) in grado di risolvere almeno in
linea di principio ogni problema traducibile in una sequenza di operazioni
matematiche. Questa macchina è oggi considerata il precursore dei moderni
c. elettronici, la cui organizzazione rispecchia molto da vicino quella
della macchina analitica. Essa si divideva infatti in cinque parti principali:
1)
organi di entrata, per fornire alla macchina le istruzioni e i dati;
2)
organi di uscita, coi quali la macchina comunicava all'operatore i
risultati del calcolo; 3) un
magazzino (o
memoria), nel quale la
macchina conservava i dati e le istruzioni; 4) un'
unità aritmetica
(o
mulino) che eseguiva le operazioni aritmetiche; 5) un'
unità
di controllo, che imponeva alla macchina l'esecuzione successiva delle
operazioni nella corretta sequenza. La memoria prevista da Babbage era composta
da colonne di ruote, ognuna delle quali poteva restare bloccata su una delle
dieci posizioni che rappresentavano le cifre dei numeri del sistema decimale
(cioè da 0 a 9). Era prevista la possibilità di memorizzare ben
1.000 numeri di 50 cifre decimali ciascuno. I dati erano forniti alla macchina
per mezzo di
schede perforate, analoghe a quelle introdotte alcuni anni
prima dal francese J.M. Jacquard per il controllo degli aghi nella tessitura.
Era previsto l'uso di due pacchi di schede, uno per le istruzioni e uno per i
dati. L'uso delle schede perforate fu poi ripreso da Hollerith nelle macchine di
elaborazione meccanica dei dati e nei moderni
c. elettronici. La macchina
analitica possedeva anche un dispositivo per effettuare il
riporto
anticipato (oggi divenuto comune) in modo da risparmiare tempo. Alla
macchina si potevano poi collegare altri organi con funzioni di memorie esterne.
I risultati erano forniti su schede perforate o stampati oppure potevano venir
letti direttamente. La macchina analitica era in grado di eseguire un'addizione
in un secondo o una moltiplicazione (o una divisione) in un minuto; era mossa da
un motore a vapore. L'idea di Babbage fu senz'altro grandiosa, tanto che lo
stesso autore morì senza averla potuta realizzare in quanto la tecnologia
di quei tempi non era in grado di fabbricare le varie parti. Ne rimane un
prototipo incompleto e una descrizione abbastanza dettagliata dovuta
all'italiano Menabrea che ebbe occasione di ascoltare Babbage durante alcune
conferenze tenute da questi a Torino nel 1840. Per quanto riguarda la
programmazione e le possibilità della macchina analitica si hanno delle
preziose note dovute alla contessa Augusta Ada di Lovelace, che fu fervida
ammiratrice e sostenitrice di Babbage. Le schede perforate si affermarono verso
la fine del secolo scorso con l'introduzione delle macchine di elaborazione
automatica dei dati ad opera di Hollerith, uno statistico americano. La macchina
prototipo di tutte quelle in uso fino a oggi, nacque dalla necessità di
elaborare in un tempo ragionevolmente breve i dati relativi al censimento
condotto nel 1890 negli Stati Uniti. Mentre nel censimento del 1880 occorsero
quasi sette anni di lavoro per ottenere i risultati, con la macchina di
Hollerith i risultati furono ottenuti in due anni e mezzo, nonostante la massa
di dati da elaborare fosse sensibilmente maggiore. La
scheda perforata
usata nei
c. fu introdotta dall'IBM nel 1928, e venne utilizzata fino
agli anni '60. Le schede venivano preparate con la
perforatrice di schede
e fornite al
c. dal
lettore di schede. Le
schede di
controllo indicavano quali programmi eseguire ed in quale sequenza, senza
intervento dell'operatore. I primi veri e propri
c. nacquero all'inizio e
durante la seconda guerra mondiale. Presso il Massachusetts Institute of
Technology (MIT) negli Stati Uniti, nel 1925 fu realizzata una calcolatrice
meccanica in grado di eseguire calcoli anche di una certa complessità;
essa fu perfezionata per vari anni fino al 1942. Era così realizzato il
sogno di Babbage, ma si era solo all'inizio. Nel 1934 l'ingegnere tedesco K.
Zuse iniziò lo studio di una macchina calcolatrice meccanica; quattro
anni dopo egli completò lo Z1, in cui l'aritmetica era espressa non
più secondo il sistema decimale, ma secondo il sistema binario (oggi di
uso pressoché universale nei
c. elettronici). Successivamente Zuse
sostituì molte parti meccaniche del suo
c. con dei relais, in modo
da avere una maggiore velocità di calcolo. Lo Z3 portato a termine nel
1941 era molto perfezionato; le istruzioni erano riportate su nastro perforato e
quindi il programma era memorizzato. Era in grado di eseguire le quattro
operazioni elementari e di estrarre la radice quadrata; si può
considerare il primo
c. elettromeccanico. Nel 1944 nacque dagli studi di
H. H. Aiken, finanziato dalla IBM, il secondo
c. elettromeccanico, il
cosiddetto ASCC (
Automatic Sequence Controlled Calculator) che era una
vera e propria traduzione in realtà del sogno di Babbage. Lo ASCC, detto
anche
Mark 1, operava in codice binario conducendo le tre operazioni e
calcolando alcune funzioni quali quelle trigonometriche, il logaritmo decimale e
l'esponenziale. Lo Z3 e il Mark 1, benché fossero macchine prestigiose
per il loro tempo, erano già in un certo senso sorpassati fin dalla
nascita: stava infatti per nascere l'era dei
c. elettronici, cioè
dei
c. nei quali l'apertura e la chiusura di circuiti non è
più fatta mediante relais, ma con tubi a vuoto o dispositivi equivalenti
(transistors, circuiti miniaturizzati, circuiti integrati). L'assenza di parti
in movimento consente una velocità di calcolo molto maggiore; infatti
mentre un relais può passare dallo stato di chiusura a quello di apertura
in un tempo che non è mai minore di un centesimo di secondo, un tubo a
vuoto può passare dallo stato di conduzione a quello di non conduzione in
un milionesimo di secondo circa. Il primo
c. impiegante tubi a vuoto, e
quindi elettronico, fu il famoso ENIAC (
Electronic Numerical Integrator and
Calculator) costruito presso la Moore School of Electrical Engineering
dell'università della Pennsylvania su progetto di J.P. Eckert e J.V.
Mauchly. Esso fu completato nel 1946 ma cominciò a lavorare nel 1945.
L'impulso alla sua costruzione fu dato da una necessità eminentemente
pratica nata dagli eventi bellici: il calcolo delle traiettorie delle bombe e
dei proiettili, che era pressoché impossibile da svolgere manualmente.
L'ENIAC, consisteva di un grande numero di circuiti elettronici, comprendenti
almeno 18.000 tubi a vuoto. Occupava una superficie di ben 180 mq, e il
mantenerlo in funzione era un lavoro non da poco. Anche il consumo di energia
non era indifferente: circa 150.000 Watts. Per contro le prestazioni erano
relativamente modeste: la memoria non poteva ospitare più di 20 numeri di
10 cifre ognuno. Il passaggio di un numero da una parte all'altra del
c.
era ottenuto come una modulazione su un treno continuo di impulsi ad alta
frequenza (100.000 Hz). Il tempo necessario per sommare o sottrarre due numeri
si aggirava sui 200 µ sec (microsecondi, cioè milionesimi di
secondo). Una moltiplicazione richiedeva circa 15 volte questo tempo e una
divisione ne richiedeva uno superiore di trenta volte. La velocità di
calcolo era quindi notevole: 5.000 addizioni o sottrazioni al secondo. Era
però molto difficile passare dall'esecuzione di un problema a un altro
(cioè
programmare il
c. per un nuovo lavoro); anche
l'esecuzione delle istruzioni avveniva in sequenza rigida, senza
possibilità di omettere alcune istruzioni od operazioni quando queste non
erano necessarie all'esecuzione di un singolo problema. Un notevole chiarimento
sull'organizzazione che avrebbe dovuto avere un
c. elettronico è
dovuta al matematico ungherese (che lavorava negli Stati Uniti) John Von Neumann
con una serie di conferenze sulla
teoria e tecnica dei c. elettronici
digitali, tenute nel 1946 presso l'università di Filadelfia.
Successivamente questi concetti furono tradotti in pratica dallo stesso Von
Neumann in collaborazione con l'università di Princeton nella
fabbricazione di un
c. denominato IAS o
Macchina di Von Neumann.
Anche altri ricercatori fecero tesoro delle sue idee e di quelle proposte vari
anni prima dal matematico inglese Alan Turing. In Inghilterra fu infatti
progettato e costruito il primo
c. a programma modificabile memorizzato:
l'
EDSAC che entrò in funzione nel 1949. Questo
c. è
pressoché contemporaneo al
Manchester Electronic Computer,
costruito dalla società inglese Ferranti, che utilizzava per la prima
volta memorie a tamburo magnetico. In quegli anni si affermarono negli Stati
Uniti due società: la IBM (
International Business Machines
Corporation) e la
Rand Corporation; entrambe queste case avevano
già un'esperienza nella costruzione di macchine per la elaborazione
meccanografica dei dati. Nel 1951 inizia il passaggio dei
c. dagli
istituti universitari e dalle applicazioni militari all'industria e
all'amministrazione. In quest'anno fu installato negli Stati Uniti un
c.
UNIVAC 1 per elaborare i dati del censimento del 1950, mentre in Inghilterra il
c. LEO 1 (costruito dalla casa inglese Leo) fu adottato per l'analisi dei
costi presso una società privata. Negli anni dal 1951 al 1955 si assiste
al passaggio dei
c. dalla fase sperimentale a quella dell'applicazione
industriale; molte case entrano in lizza sia in Inghilterra che negli Stati
Uniti che in altri Paesi. Oltre a quelle citate ricordiamo negli Stati Uniti la
RCA, la General Precision e la Bendix. In Inghilterra si affermarono anche la
English Electric, la ICT e la Elliott Automation. In Francia si impose la Bull e
in Germania la Siemens. Nel 1958 si considera generalmente chiusa la prima fase
delle ricerche in questo campo; questa data segna la fine di quella che fu detta
la
prima generazione dei c. elettronici. Dal 1958 al 1964 circa si
colloca la
seconda generazione, caratterizzata dall'impiego diffuso di
circuiti e di memorie allo stato solido. I tubi a vuoto vennero sostituiti dai
transistors, molto più piccoli e di durata molto maggiore; le memorie non
impiegarono più tubi a vuoto, ma anellini di materiale ferromagnetico.
Questo permise una riduzione notevolissima delle dimensioni (o un grande aumento
delle capacità di memoria e di calcolo a pari dimensioni), un aumento
della durata di funzionamento del
c., una riduzione delle
possibilità di errore entro limiti trascurabili e infine una grandissima
riduzione del costo di fabbricazione e manutenzione. Tutto questo si traduceva
in pratica in una maggiore competitività del
c., e quindi in una
sempre maggiore diffusione dello stesso. Il best-seller di questa generazione
è l'IBM 1401, molto versatile e di media grandezza oltre che veloce e
facile da programmare. Ne furono installati, dal 1950 al 1964 circa, 10.000
esemplari, pari a oltre il 30% dei
c. della seconda generazione. Anche
altri
c. ebbero successo notevole; fra questi ricordiamo l'UNIVAC 1004 e
gli IBM 1440 e 1460, usciti alla fine di questo periodo. Un diverso tipo di
c. fu la serie CDC 6000, prodotta dalla Control Data Corporation per le
installazioni della Commissione per l'Energia Atomica, ed avente un'architettura
multiprocessore, rivoluzionaria per quei tempi, che gli permise di essere il
più veloce
c. per applicazioni scientifiche di allora. In Italia
negli anni Sessanta la Olivetti tentò di inserirsi nel mercato dei
c.: l'
Elea nelle sue varie versioni fu prodotto in poco più
di un centinaio di esemplari, installati quasi esclusivamente in Italia. Nel
1964 la Olivetti abbandonò il mercato dei
c. elettronici cedendo
questo settore alla General Electric americana, mediante la costituzione di una
società denominata OGE. La
terza generazione dei c. elettronici si
colloca negli anni dal 1964 al 1970 circa. Essa è caratterizzata dal
passaggio ai cosiddetti
circuiti miniaturizzati o
microminiaturizzati, costituiti da una sottile lamina di piccole
dimensioni sulla quale sono realizzate diverse funzioni (resistenza,
capacità, transistors, diodi) in numero di decine o centinaia con le
relative connessioni. Si costruiscono così dei minuscoli elementi
contenenti un numero molto grande di circuiti logici, i quali vengono assemblati
a dare le varie parti del
c. La
quarta generazione dei c.
elettronici è associata alla nascita del
circuito integrato (IC),
una piastrina di silicio su cui viene inciso un intero processore, in precedenza
sparso su vari circuiti miniaturizzati. Anche le memorie di anellini
ferromagnetici vengono sostituite da IC, più veloci e meno costosi,
sebbene non persistenti - i dati vengono persi se manca l'alimentazione - gli
anellini (con un diametro ridotto da 70 mm a 14 mm) verranno ancora usati in
applicazioni militari, proprio perché non volatili. Nel 1971 la Intel
introduce il 4004, il primo
microprocessore a 4 bit (il bit è la
cifra binaria, che assume valore 0 o 1, come una cifra decimale ha valori da 0 a
9), seguito nel 1972 dall'8008 e nel 1973 dal famoso 8080, entrambi a 8 bit. Nel
1975 la MOS Technology realizza il 6502, la Zilog annuncia lo Z80 (un
miglioramento dell'8080) e la Motorola il 6800, tutti a 8 bit. La tecnica degli
IC permette ora di assemblare un
c. con relativamente pochi componenti e
spesa, anche a livello hobbystico. Si noti che già allora i
c.
delle grandi compagnie come IBM e Digital Equipment Corporation (DEC) avevano
un'architettura a 32 bit, più veloce ma anche molto più costosa,
che ne limitava la diffusione ai grandi utenti (industrie e università);
sarà utile menzionare inoltre i
supercalcolatori della
società
Cray, discendenti dai CDC 6000 degli anni '60, e
realizzati con un'architettura parallela a 64 bit, specificamente progettata per
operazioni vettoriali. L'avvento dei microprocessori dà luogo a dozzine
di società con prodotti basati su 8080, Z80, 6502 e 6800: si va dalle
schede spartane con un tastierino ed un visore LED alle tastiere con monitor
incluso e registratore a cassette. La popolarità di questi prodotti
è testimoniata dai numerosi club di utenti, vale a dire programmatori,
siccome non esiste ancora un mercato di software per
microcalcolatori. Si
può certamente affermare che solo da allora il
c. è entrato
a far parte della cultura comune, mentre prima era privilegio di un'élite
in camice bianco. Nel 1977 una piccola società, la Apple, mette in
vendita il famoso AppleII, una macchina dotata di 6502, 16KBytes di
RAM
(memoria a lettura e scrittura), 16KBytes di
ROM (memoria a sola
lettura), tastiera, registratore a cassette e monitor a colori; i modelli della
serie AppleII verranno prodotti fino a metà degli anni '80 e
contribuiranno a fare della Apple un produttore di prima grandezza. Un'altra
società che ha giocato un ruolo importante è la Commodore, che
sempre nel 1977 presenta il PET (Personal Electronic Transactor), un
c.
con caratteristiche simili all'AppleII. Altre società con prodotti allora
diffusi sono la Atari, coi suoi modelli 400 e 800 (basati su 6502), e la Tandy
Radio Shack, col TRS 80 (basato su Z80). La tendenza nel campo dei
microcalcolatori è differente da quella dei grandi
c., in quanto
questi ultimi sono completamente costruiti dal produttore, che ne decide
l'evoluzione hardware; i microcalcolatori dipendono invece dall'evoluzione dei
microprocessori, sviluppati indipendentemente da varie compagnie come Intel,
Motorola e Zilog. La storia dei
c. si biforca così fra
minicalcolatori e supercalcolatori, prodotti da compagnie come IBM, DEC,
Data General, Hewlett-Packard, Cray, e microcalcolatori, suddivisibili in
famiglie a seconda del microprocessore utilizzato; la storia dei microprocessori
va dunque di pari passo con quella dei microcalcolatori. Nel 1978-9 la Intel
introduce l'8086 e l'8088, a 16 bit, che saranno il cuore del futuro PC IBM del
1981; sempre in quel periodo, la Motorola annuncia il 68000, un 16 bit con
istruzioni a 32 bit, usato nelle prime
workstation della Sun - una
società fondata nel 1982 - nell'Apple Macintosh del 1984, nel Commodore
Amiga e nell'Atari ST del 1985. I microprocessori diventano più veloci
passando da 8 a 16 a 32 bit; il loro
set di istruzioni si arricchisce in
modo da facilitarne la programmazione, e per questo vengono anche definiti
CISC (Complex Instruction Set Computer). Nel frattempo, un altro tipo di
processore, definito
RISC (Reduced Instruction Set Computer), si propone
come antagonista al CISC: i costruttori di processori RISC affermano infatti che
istruzioni più semplici, come quelle del set ridotto, sono talmente
più veloci che un RISC, pur dovendo eseguire più istruzioni
semplici di un CISC, è comunque avvantaggiato. Inoltre i RISC nascono
dopo i CISC, e possono far tesoro dell'esperienza acquisita (per esempio, sono
già progettati a 32 bit). La Sun è una delle prime società
a far uso di processori RISC nelle sue
workstation, passando dalla serie
Motorola 68000 allo SPARC (Scalable Processor Architecture), un RISC basato su
un progetto sviluppato all'Università della California a Berkeley - il
Berkeley RISC, per l'appunto. La Silicon Graphics è un'altra compagnia -
contemporanea della Sun - a far uso di processori RISC nelle sue
workstation grafiche: questo campo richiede infatti una grande potenza di
elaborazione. Anche IBM, impegnata sia sul fronte dei grandi
c. che su
quello dei PC con processore Intel, gioca la carta del RISC in una corsa al
miglioramento di tecniche e prestazioni che ha coinvolto tutto il mondo
dell'informatica e che ha portato, negli anni Ottanta e Novanta, a una
nuova concezione del mezzo e alla sua ampissima diffusione in ambito lavorativo
(grazie anche al successo delle unità portatili) e, soprattutto, in
ambiente famigliare, favorito anche dall'uso sempre più capillare e
profondo di Internet. ║ Il
c., nel senso tradizionale della parola,
viene oggi chiamato
calcolatrice (V.) e non
possiede di solito programma memorizzato, per cui richiede un continuo
intervento dell'utente (ma esistono anche calcolatrici programmabili, che non
hanno però grande velocità e capacità di memoria). Il
c. elettronico possiede invece un codice di istruzioni (
programma)
- memorizzato in ROM o caricato in RAM dalla memoria di massa (
dischetto,
disco rigido, CD-ROM) o tramite tastiera - sul modo di eseguire l'algoritmo
di risoluzione del problema; l'utente deve solo
lanciare il programma e
fornire i dati su richiesta. I
c. elettronici sono oggi di tre tipi:
digitali o
numerici, analogici e
ibridi. Data la differenza
che intercorre fra di essi, saranno trattati singolarmente
(V. CALCOLATORE ANALOGICO, CALCOLATORE DIGITALE,
CALCOLATORE IBRIDO). Anche la programmazione dei
c. sarà
discussa a parte (V. CALCOLATORE, LINGUAGGIO DEL).
║
Usi: la diffusione e l'accessibilità dei microcalcolatori
da un lato, e la disponibilità dei supercalcolatori dall'altro, hanno
fatto sì che ogni attività che comporti il trattamento di
informazioni, di qualunque tipo e dimensione, abbia adottato il
c. Le
prime applicazioni hanno riguardato la risoluzione di equazioni di vario tipo
(soprattutto differenziali e integrali) che non era possibile coi metodi
manuali, in un tempo umanamente accettabile (ciò è comprensibile
se si pensa che un
c. non è altro che una macchina
addizionatrice). Tali equazioni o sistemi di equazioni si presentano molto
spesso in vari campi: in astronomia, nel calcolo della traiettoria di un
missile, nel controllo di una centrale o di un reattore nucleare e così
via. Nello stesso tempo il
c. permette la costruzione di un modello
matematico in grado di rappresentare il comportamento di un qualsiasi sistema o
fenomeno fisico descrivibile in termini matematici. Così si sono fatti
modelli del nucleo dell'atomo, degli ammassi stellari, del cervello umano, della
coclea dell'orecchio, dell'evoluzione naturale secondo la legge di Mendel, di un
reattore chimico, e così via quasi all'infinito. Nell'industria i
c. vengono impiegati sia nelle mansioni di contabilità, controllo
delle scorte, programmazione della produzione, computo delle paghe, ecc., che
nel controllo del ciclo produttivo vero e proprio. In quest'ultimo caso si parla
di applicazioni
in tempo reale: il
c. è provvisto di organi
periferici (
sensori) che gli portano delle informazioni che esso elabora,
ottenendo dei risultati in base ai quali esso comanda dei servo meccanismi
controllati dai parametri che agiscono direttamente sul processo, modificandolo
nel modo voluto. Un esempio di applicazione in tempo reale è il controllo
dei
meccanismi robotici utilizzato nelle linee di montaggio degli
autoveicoli. Un altro esempio di brillante applicazione in tempo reale è
dato dal controllo dei missili telecomandati o a puntamento automatico:
opportuni organi sensori (radar, raggi infrarossi, satelliti) rilevano con
continuità la posizione del bersaglio in relazione a quella del missile;
il
c. elabora queste informazioni e corregge la traiettoria del missile
in modo da provocarne infallibilmente la collisione col bersaglio. Altra
applicazione in tempo reale è il controllo del traffico cittadino,
attuato già in alcune città. Un
c. è collegato a
opportuni organi che rilevano lo stato del traffico sulle arterie (numero e
velocità dei veicoli); esso elabora queste informazioni e comanda
l'alternarsi delle posizioni di rosso e verde sui vari semafori, in modo da
rendere il più veloce possibile tutto il traffico. Sempre nell'industria
il
c. è usato anche in fase di progettazione meccanica in modo da
controllare od ottimizzare o progettare di punto in bianco certi pezzi: si parla
di
Computer Aided Design (CAD) - Progettazione Assistita da Calcolatore.
Esistono addirittura programmi (
Silicon Compilers) di progettazione di
IC, che aiutano nel rispettare le leggi dell'elettronica durante la stesura dei
circuiti. Una volta preparato un progetto, si può effettuarne la stampa
tramite il
plotter, un dispositivo adatto al disegno grafico, che consta
di un tamburo che può ruotare sul suo asse nelle due direzioni; sul
tamburo è fissato un foglio di carta. La scrittura è eseguita con
una penna che si muove parallelamente all'asse del tamburo, comandata da un
braccio. La velocità con cui è tracciato il disegno è
relativamente molto alta: circa 3 cm per secondo. Esistono anche plotters
più piccoli, a piano elettrostatico, su cui viene fissato il foglio da
disegno; la tracciatura può anche essere a colori. Nelle officine
meccaniche sono utilizzate le
macchine utensili a controllo numerico (o
APT) che eseguono su un pezzo una successione generalmente molto complessa di
operazioni su comando di un nastro di carta perforata che è a sua volta
fornito da un
c. La grafica al
c., oltre al CAD, permette
l'esecuzione di disegni a mano libera, con trasformazioni varie applicate dal
programma, e la libertà di correggere qualunque particolare fino a
ritornare allo schizzo di partenza (
undo). Altresì è
possibile porre in sequenza diversi disegni e farli visualizzare in modo da
produrre un'animazione; il cosiddetto
genlock permette di sovraimporre
immagini televisive alla grafica da
c. così da ottenere effetti
speciali: basti ricordare il film
Terminator II. Un'ulteriore
applicazione della grafica è la
realtà virtuale, con la
quale un
c. simula un ambiente immaginario (virtuale) che l'uomo
può esplorare con l'ausilio di strumenti sensori e visualizzatori. Un
campo molto vasto aperto al
c. è il trattamento delle
informazioni, di qualsiasi tipo esse siano, con metodi matematici o statistici;
in molti casi la massa delle informazioni è talmente grande che non
sarebbe elaborabile in altro modo. Più dettagliatamente, si è
visto, ad esempio in medicina, che un trattamento statistico degli
elettrocardiogrammi e degli encefalogrammi può portare a un chiarimento
tale che lo stesso
c. è in grado di produrre una diagnosi: si
tratta del
sistema esperto, in parole povere un programma addestrato a
riconoscere certi dati confrontandoli con altri memorizzati nella sua
base di
conoscenza e formulando un giudizio o una diagnosi motivati. La
difficoltà nella realizzazione dei sistemi esperti sta nella costruzione
della base di conoscenza, che è ciò che dà al programma la
sua "intelligenza"; usualmente, un esperto umano della materia deve collaborare
col programmatore, e verificare che il sistema dia le risposte corrette e possa
motivarle spiegando quali passi ha fatto. Pure la traduzione di brani da una
lingua ad un'altra si presta all'uso del sistema esperto, che deve tener conto
della vastità del vocabolario e dei significati, con le sfumature e le
ambiguità dovute al contesto. In effetti, il problema è ben
più ampio e coinvolge le annose discussioni sull'
intelligenza
artificiale in atto fin dagli anni '50, da quando Alan Turing
pubblicò (1950) il suo articolo
Macchine calcolatrici e
intelligenza, in cui proponeva il
test di Turing come procedura di
decisione sull'intelligenza o meno di un
c. Un buon successo hanno avuto
invece le analisi filologiche di vari autori. Sempre in questo campo è da
ricordare che il
c. può servire per le sue grandi capacità
di memoria anche come una vera e propria biblioteca caratterizzata da una
grandissima velocità di consultazione: basterebbe richiedere al
c.
tutte le informazioni che ha registrato su un certo argomento per ottenerle in
breve tempo. Anche nell'insegnamento attivo e nella correzione di elaborati il
c. si è dimostrato uno strumento prezioso. In altri campi esso ha
portato uno sveltimento enorme del lavoro. Ad esempio la prenotazione dei posti
sugli aerei di linea era un tempo un'operazione relativamente complessa per le
società, che dovevano organizzare le varie prenotazioni fatte in luoghi
diversi. Un
c. è invece in grado di seguire istante per istante la
situazione delle prenotazioni onde la società può sapere
istantaneamente la disponibilità dei posti. Un grande impulso allo
scambio di informazioni viene dalle
reti globali di comunicazione (wide-area
networks), tramite cui è possibile collegarsi con
c. di tutto
il mondo, senza riguardo per la distanza, ed ottenere gli stessi servizi su
scala maggiore: consultazione di biblioteche, uso di programmi particolari,
invio di
posta elettronica, notiziari ed avvenimenti, gruppi di
interesse, partecipazione a progetti. Nelle banche un
c. è uno
strumento preziosissimo per lo svolgimento di calcoli e operazioni anche molto
complesse. Ad esempio esso può servire per conoscere istantaneamente la
situazione di un certo deposito e informare nel giro di una frazione di secondo
il cassiere che vuole sapere se un certo assegno dispone della copertura o manca
di fondi. Altri esempi molto conosciuti sono il
Bancomat, per i
prelevamenti e le informazioni sui conti correnti, e il terminale
Point of
Sale (POS) degli esercizi commerciali, che grazie a un collegamento
telefonico col
c. della banca permette l'accredito immediato del
corrispettivo della merce o servizio venduti. Nel campo militare infine i
c. sono usati per il controllo dei missili, delle catene di avvistamento
radar e così via. In generale si può dire che il
c.
elettronico è in grado di svolgere con grande velocità e
precisione grandi quantità di operazioni, purché queste siano di
tipo matematico o logico, cioè non richiedano al
c., di fare
alcunché al di fuori di quello che gli è stato ordinato in sede di
programmazione. Un
c. può anche essere posto di fronte ad
alternative, ma queste devono essere ben precise e devono ammettere due sole vie
di uscita (sì / no: si parla di
logica di Boole). Si è
quindi ben lontani dall'avere costruito una macchina pensante nel senso inteso
da una certa letteratura fantascientifica; il
c. elettronico è
semplicemente una macchina logica, che esegue coscienziosamente e velocemente i
calcoli che le sono richiesti. ║
Futuro del c.: la tendenza attuale
è verso la miniaturizzazione sempre più alta dei circuiti, fino al
limite fisico di circa 1/10 di micron, oltre il quale si avvertono gli effetti
quantistici e vale il
principio di indeterminazione di Heisenberg, per
cui si dovranno impiegare nuove tecniche costruttive. Uno sviluppo promettente
sono i
circuiti optoelettronici, che combinano tecniche di calcolo ottico
(inerentemente parallele, data la natura della luce) e connessioni elettroniche
di tipo tradizionale: la difficoltà sta nel far coesistere i due tipi di
circuito, che hanno caratteristiche materiali e di velocità ben diverse -
ad esempio, gli elettroni hanno massa e carica, mentre i fotoni no. Pure le
memorie, dopo l'evoluzione dei
nastri magnetici, dei
dischi
rigidi, dei
dischetti e dei
dischi ottici - WORM, CD-ROM -
usufruiranno dell'optoelettronica, che ci promette delle
memorie
olografiche, in grado di memorizzare, in un cristallo di 1 cm cubo, circa 1
Terabyte - 1.000 miliardi di bytes - con tempi di accesso nell'ordine dei
microsecondi. La riduzione delle dimensioni ha permesso - fin dagli anni '80 -
la costruzione di
c. portatili, da quelli a valigetta fino al
palmtop, letteralmente
che sta in palmo di mano, con tastiera
ridotta o altri metodi di immissione dei dati (penna o microfono); grazie alla
diffusione dei
networks non è più necessario portare con
sé tutti i dati, poiché è sempre possibile collegarsi via
telefono col
c. a casa o in ufficio e chiedere al volo le informazioni;
man mano che i mezzi di trasmissione si faranno più veloci e meno
costosi, il
c. diventerà una presenza abituale, e potremo sia
portare con noi il nostro che trovarne nell'ambiente, come già è
per il telefono. La programmazione, grazie all'accresciuta potenza del
c., è e sarà sempre più espressiva, poiché
programmi in linguaggi complessi potranno essere analizzati ed eseguiti alla
stessa o maggior velocità dei programmi nei vecchi linguaggi meno
espressivi: un esempio ci viene dai linguaggi
object-oriented,
specificamente usati per la costruzione di modelli del mondo reale o
immaginario, e che necessitano di parecchie risorse - memoria e velocità
- per produrre una simulazione accurata. Ricordiamo comunque che il linguaggio
dipende dall'architettura del
c. - sequenziale o parallela - e dal
modello intrinseco, che è quello di Von Neumann e della logica a 2 stati
di Boole; solo come esempio, sono state definite anche una logica ternaria, che
ammette un valore di dubbio, ed una logica
fuzzy, letteralmente
confusa, vaga, che ammette infiniti valori di verità: un
c.
che implementasse efficientemente la logica vaga richiederebbe un'architettura
ben diversa. Anche la creazione di una vera e propria
macchina pensante o
- in termini più tecnici - di un
c. in grado di
autoprogrammarsi, cioè di trarre profitto da quanto imparato nello
svolgimento di un problema, per risolvere i successivi, è una questione
di architettura e linguaggio; in effetti i tentativi in questo campo fanno uso
di
reti neurali e
linguaggi logici. Un
c. di questo tipo
è già stato costruito ad esempio per giocare a scacchi: esso si
comporta come un buon giocatore ma viene battuto da un giocatore molto in gamba.
Non può mai essere battuto due volte con la stessa mossa in quanto esso
impara continuamente a giocare meglio. Va notato che il ragionamento di un
giocatore di scacchi non è affatto del tipo matematico deduttivo ma
è completamente euristico: un giocatore esamina infatti successivamente
tutte le varie possibilità di muovere i suoi pezzi e sceglie quella che
gli procura il maggior vantaggio. Una macchina veramente in grado di
autoprogrammarsi, cioè dotata di quella facoltà, che è
detta
apprendimento, di sfruttare l'esperienza acquisita nei vari
problemi, potrebbe dirsi veramente una macchina pensante, ma non sarà mai
una macchina intelligente. L'intelligenza è una facoltà che non
richiede solo una
concezione deterministica delle cose, bensì una
concezione probabilistica, cosa molto difficile da realizzare su un piano
matematico. D'altronde i vari tentativi di far comporre musica o versi da un
c. opportunamente programmato hanno portato alla creazione di qualcosa di
formalmente corretto ma certamente non molto poetico.