Calcolatori
di Lew Kowarski
SOMMARIO: 1. Definizioni e storia: a) i calcolatori come dispositivi numerici; b) i calcolatori come dispositivi elettronici; c) stadi dello sviluppo storico. □ 2. I componenti e i sistemi: a) attrezzatura; b) corredo; c) modi di operazione. □ 3. Applicazioni: a) cosa si può fare con i calcolatori; b) modi di impiego; c) campi di applicazione. □ 4. Considerazioni conclusive. □ Bibliografia.
1. Definizioni e storia.
a) I calcolatori come dispositivi numerici.
La parola ‛calcolatori', in origine, designò tutti i tipi di materiali che si erano dimostrati utili per trattare i numeri e i dati numerici. Perline infilate su fili o su bastoncini, ruote dentate con cifre sovrastampate, aste scorrevoli, reti di interruttori e luci intermittenti, tutto ciò e altro ancora, è entrato a far parte di apparati ‛di calcolo', utilizzabili direttamente per risolvere problemi numerici fin dai primordi della civiltà.
Dalla seconda metà del nostro secolo, il termine ‛calcolatori' ha acquistato vasta risonanza nella scienza, nella tecnologia, nell'economia e anche nell'etica e nell'opinione pubblica. Questo ampliarsi degli interessi, tuttavia, non si è esteso allo stesso modo a tutti i mezzi di calcolo. L'intera classe dei dispositivi analogici (quelli cioè che elaborano i numeri sotto forma di entità fisiche misurabili: un certo angolo di rotazione di un albero, un certo numero di volt di un impulso elettrico, ecc.) è oggi tacitamente omessa quando si parla di ‛calcolatori' e di tutte le implicazioni che attualmente vi si annettono.
Tenuto conto di ciò, noi useremo qui questa parola soltanto in riferimento a quei dispositivi nei quali i numeri sono rappresentati con una o più cifre (cioè simboli elementari i cui valori dipendono dalla rispettiva posizione nel simbolo composto, esattamente come nella nostra notazione scritta). La rappresentazione ‛numerica' è particolarmente adatta per il trattamento di numeri molto grandi o con molte cifre decimali; una volta applicato il principio della rappresentazione decimale ai circuiti elettromagnetici, i suoi vantaggi divennero evidenti.
b) I calcolatori come dispositivi elettronici.
Alcuni dispositivi meccanici composti di ruote, alberi, ecc., sono stati costruiti e utilizzati nel corso dei secoli passati (come vedremo). Per semplici operazioni essi sono a volte più veloci di un calcolatore umano. Ciò nonostante, nessun apparato meccanico potrà mai competere col cervello umano per complessità e versatilità. I dispositivi elettronici diedero modo di operare a velocità enormemente superiori, di assolvere una grande varietà di richieste complesse e di eseguire delle lunghe sequenze di calcolo in modo completamente automatico. Inoltre, tutti questi vantaggi possono facilmente essere combinati con un grado di precisione, o mancanza di errori, di gran lunga superiore a quello che ci si può aspettare da un calcolatore umano.
Non appena i calcolatori elettronici dimostrarono le loro enormi capacità per il trattamento dei numeri, ci si rese conto che tali elaborazioni sono costituite da più passi logici elementari, come riconoscere se un dato simbolo appartenga o no a un insieme definito, se due simboli siano identici oppure diversi. Processi di tale tipo si incontrano quando si voglia classificare oppure ordinare una qualunque serie di oggetti secondo le loro caratteristiche o i loro contrassegni; oppure quando si vogliano tradurre informazioni espresse in un sistema di simboli (codice, linguaggio, ecc.) in un altro sistema, ammesso che questo possa essere fatto seguendo un insieme prefissato di regole di equivalenza.
Ci si rese conto ben presto che i calcolatori non erano meno efficienti nei problemi di tipo non numerico che in quelli numerici per i quali erano stati originariamente utilizzati. Tale estensione fu decisiva perché i calcolatori divenissero uno dei fattori principali dell'era tecnologica contemporanea.
c) Stadi dello sviluppo storico.
In tutti i dispositivi di calcolo numerico la rappresentazione e il trattamento di dati numerici o logici dipende dagli elementi materiali che possono essere commutati da una posizione, o stato, a un'altra grazie all'intervento umano o ad altro. Dai primitivi rosari fino ai giorni nostri, l'evoluzione storica dei mezzi di calcolo è avvenuta nel senso di aumentare la velocità e la flessibilità del meccanismo; la graduale eliminazione dell'intervento umano fu perseguita non solo a beneficio dell'uomo, ma anche, e forse principalmente, per guadagnare in velocità.
Il primo stadio di questa eliminazione si concluse con l'introduzione delle ruote numerate e di altri organi rotanti e bloccanti (W. Schikhardt, 1624 e, indipendentemente, Blaise Pascal, 1642; Leibniz, 1671). La funzione meccanicizzata era il trattamento aritmetico dei numeri sottoposti alla macchina, mentre la fornitura dei dati alla macchina, i comandi delle operazioni e la scrittura in uscita dei risultati dovevano ancora essere fatti da un operatore umano, che rallentava quindi le operazioni. L'operatore umano, sino a circa il 1900, era anche l'unica sorgente motrice di tali mezzi meccanici senza molte pretese. Le moderne calcolatrici da tavolo, con le loro tastiere per l'ingresso dei dati, l'uscita su carta stampata e i motori elettrici per il funzionamento sono i diretti discendenti di questi antenati appartenenti al sec. XVII.
Verso la fine del sec. XVIII, le macchine azionate dal vapore cominciarono a dominare molti processi industriali, come la tessitura; divenne allora possibile far uso di una serie di schede perforate per dirigere le operazioni di una macchina (telaio tessile di Jacquard) in modo tale da seguire una sequenza predeterminata. Ch. Babbage, nel 1830, sviluppò l'idea di usare questa formula operativa non solo per introdurre dei dati, ma anche sequenze di istruzioni per la macchina, il cui modo di operare perciò non sarebbe più stato determinato da un continuo intervento umano. Egli si rese immediatamente conto del fatto che questa nuova autonomia avrebbe potuto diventare preziosa in ogni calcolo di tipo ripetitivo, che sarebbe stato eseguito non soltanto secondo una sequenza ricorrente di istruzioni, ma anche tenendo conto dei risultati ottenuti dalle fasi precedenti del calcolo. Tutte queste possibilità di automazione implicarono un aumento del tempo di accesso da parte della macchina ai dati e alle istruzioni; tale necessità condusse Babbage all'invenzione della memoria, quale organo essenziale di un calcolatore automatico.
La possibilità di eseguire calcoli matematici superando di molto i limiti umani di velocità, complessità e libertà dagli errori, fu prevista correttamente in questa visione pionieristica; cercandone una realizzazione pratica, tuttavia, Babbage fu ancora obbligato a pensare in termini di connessioni e supporti di dati relativamente poco maneggevoli. Per un tipo di operazioni logiche più elementari, come l'ordinamento di un gran numero di dati disordinati, la soluzione meccanica o elettromeccanica si dimostrò adeguata ed essa fu introdotta da H. Hollerith tra il 1880 ed il 1890, per trattare problemi connessi con le statistiche sulla popolazione.
Il passaggio alla realizzazione dell'idea di Babbage con l'elettronica pura ebbe luogo tra il 1930 e il 1940 e passò all'inizio attraverso uno stadio di progressiva sofisticazione elettromeccanica con parti meccaniche mobili connesse e azionate da correnti elettriche (tecniche già ampiamente in uso per il telegrafo e il telefono). Tra i più importanti ‛primati' possiamo citare: la prima proposta di rappresentare i numeri in notazione binaria per il calcolo (R.L.A. Valtat, Francia 1931); il primo dispositivo di calcolo elettronico (C. E. Wynn-Williams, Inghilterra 1932, per il conteggio delle particelle nucleari, con un sistema binario); il primo calcolatore elementare binario (a relé) (L. Couffignal, Francia 1936). Infine, il primo passo effettivo verso un sistema di calcolo automatico del tipo Babbage, comprendente un'unità di memoria interna e il controllo automatico per mezzo di un nastro perforato, ebbe luogo intorno al 1940 per opera di K. Zuse in Germania (binario a relé) e H. Aiken negli Stati Uniti (decimale elettronico).
Il primo calcolatore elettronico automatico fu l'ENIAC progettato da W. P. Eckert e J. W. Mauchly (S.U.A.) e costruito intorno al 1945. Nel 1944 questo gruppo, che includeva anche H. H. Goldstine, si arricchì del grande matematico, logico e fisico, J. L. von Neumann. I principi di base, quali il concetto di programma memorizzato e l'elettronica binaria, furono ben presto formulati. La collaborazione tra gli Stati Uniti e l'Inghilterra nelle applicazioni militari dell'elettronica si rifletté anche nella ricerca applicata ai calcolatori; idee pratiche molto importanti furono proposte da F. C. Williams e T. Kilburn di Manchester. A quel tempo, l'insieme dei concetti che dovevano formare la base comune di tutti gli sviluppi successivi fu completato e, tra le applicazioni concrete, l'elaboratore EDSAC (costruito da M. V. Wilkes a Cambridge, Inghilterra) fu il primo ad essere operativo, nel 1949. Il corrispondente sforzo americano ebbe luogo nelle università e negli istituti di ricerca, ma lo sviluppo commerciale seguì molto rapidamente; la Remington Rand e la International Business Machines furono attivamente interessate all'inizio del decennio 1950-1960. Da allora, l'evoluzione dei calcolatori fu contraddistinta da successivi perfezionamenti nell'elettronica di base, in primo luogo dal passaggio dalle valvole termoioniche ai transistori, avvenuto verso la fine del decennio, e dall'introduzione dei microcircuiti integrati a stato solido, avvenuta dopo il 1960.
Nel corso dello stesso decennio, divenne sempre più chiaro che i metodi per tradurre problemi e necessità umane in termini di comandi a meccanismi calcolatori offrivano all'innovazione e all'inventiva un campo più vasto dello sviluppo dei meccanismi stessi. È in tale campo e in tali termini che la crescente importanza dei calcolatori nelle attività umane dovrà da ora in poi essere intesa.
Come in molte altre branche dell'alta tecnologia, forse ancor più che altrove, i maggiori progressi dalla seconda metà del nostro secolo nel campo dei calcolatori si ebbero inizialmente e principalmente negli Stati Uniti e in Inghilterra. Gli altri paesi vanno gradualmente mettendosi al passo, ma il ruolo primario degli Stati Uniti appare dall'importanza raggiunta dalla IBM e da alcune organizzazioni che operano sul mercato mondiale.
Questi segni visibili di preminenza forse non debbono essere troppo sopravvalutati: infatti, oggigiorno, molti risultati di ottimo livello scientifico e tecnologico relativi ai calcolatori sono ottenuti in molti dei paesi tecnologicamente più avanzati. Il progresso futuro sarà senz'altro contraddistinto da una crescente varietà delle sorgenti.
2. I componenti e i sistemi.
Un calcolatore veniva considerato nel passato come un apparato unico; oggigiorno si pensa piuttosto a un certo numero di differenti ‛attrezzature' separate (o hardware), aventi ognuna le proprie funzioni specializzate e costituenti nell'insieme un ‛sistema di elaborazione'. Le funzioni da eseguire, i comandi operativi e la serie dei dati devono essere rappresentati in una certa forma che consenta di essere rilevata dagli organi di senso della macchina (qualcosa come il disco del grammofono che viene esplorato dalla puntina). Il complesso di informazione di tali registrazioni leggibili dalla macchina è normalmente chiamato ‛corredo' (o software); sia l'attrezzatura che il corredo come aspetti del funzionamento di un sistema di elaborazione vanno considerati come mutuamente dipendenti e complementari.
a) Attrezzatura.
1. Componenti elementari. - Per trattare le singole cifre, l'attrezzatura deve disporre di elementi materiali capaci di assumere un numero di stati distinti pari alla base del sistema di numerazione (così come ogni filo in un pallottoliere può essere posto in uno stato rappresentante 0, 1,..., 9 spostando lateralmente un corrispettivo numero di palline). Ogni stato dovrebbe essere ‛stabile', cioè tale da non mutare se non quando sia sottoposto a una specifica e deliberata azione. Allo stesso tempo, ogni stato dovrebbe essere ‛conseguente' a tale azione (nell'esempio del pallottoliere ciò significa che le palline devono muoversi solo quando vengono spostate dalle dita; quindi il pallottoliere non deve essere inclinato).
Si trovò che i circuiti elettronici lavorano nel modo migliore e più semplice con ‛elementi bistabili' (o flip-flop) cioè con elementi che ammettono solo i valori 0 e 1. Questi due simboli numerici sono sufficienti per rappresentare o gni numero in forma binaria, nella quale, cioè, ogni cifra vale, per quanto riguarda la posizione, il doppio della cifra adiacente di destra (invece di dieci volte come nel caso della comune rappresentazione decimale). In questo sistema due è scritto 10, otto 1.000, tredici 1.101, ecc.; la scrittura di un numero binario implica circa il triplo delle cifre dell'equivalente decimale, ma ogni cifra è molto più facile da immagazzinare e trattare. Una traduzione dalla rappresentazione decimale a quella binaria deve avvenire a ogni passaggio dal pensiero umano all'elaborazione della macchina e viceversa; ciò può essere fatto molto facilmente e velocemente grazie a semplici, specifiche procedure.
L'attuale attrezzatura contiene normalmente elementi bistabili come transistori - nei due stati di ‛conduzione-non conduzione' o ‛aperto-chiuso' al passaggio della corrente elettrica - e parti di materiale magnetico che presentano le due opposte direzioni di magnetizzazione. Altri fenomeni fisici come la superconduttività e l'eccitazione ottica sembrano ben promettere per gli sviluppi futuri.
Cifre decimali, lettere dell'alfabeto (o di più alfabeti se necessario, come ad esempio le lettere maiuscole e le lettere minuscole), segni di punteggiatura, simboli matematici o altri simboli di uso corrente, possono facilmente essere codificati in gruppi di cifre binarie (o bits, da Binary digits). Un codice a 6 bits può rappresentare 64 caratteri diversi, che non sempre sono sufficienti. Il gruppo di 8 bits, o byte, il cui uso si sta ormai diffondendo, offre una scelta praticamente inesauribile di 256 caratteri diversi.
2. Gli organi principali di un calcolatore. - Il flusso di informazioni attraverso un sistema di elaborazione ha inizio con l'entrata. Gli insiemi di informazioni, per essere accessibili alla macchina, devono essere espressi in un codice binario. Ciò significa porre la parte del mezzo di registrazione corrispondente a ogni cifra registrata in uno dei due stati possibili (essi non devono essere ‛bistabili' nel senso precedentemente definito: si richiede soltanto che uno stato si mantenga senza che vi sia possibilità di un mutamento accidentale). Nelle ormai familiari ‛schede perforate', una posizione può essere contrassegnata da una perforazione oppure lasciata intatta. Sui dispositivi a tracce magnetiche, quali sono nastri, dischi o tamburi, le porzioni della traccia consecutive sono magnetizzate in un verso o nell'altro. Su una pellicola fotografica, una posizione può essere annerita mediante esposizione oppure no. In tutti questi casi, il ‛dispositivo di entrata' del calcolatore esamina le successive posizioni e trasmette una serie di impulsi elettrici alla ‛memoria' del calcolatore, donde le informazioni sono dirette agli altri organi, secondo il corredo delle istruzioni. I moderni organi di entrata consentono anche l'introduzione diretta di dati sotto forma di impulsi tramite tastiera manuale, telefono, strumenti di misura, ecc. (la cosiddetta operazione ‛in-linea' che può richiedere o meno la presenza di un operatore per i dati di entrata).
Una memoria consiste di un gran numero di dispositivi elementari, bistabili: molti milioni di bits nei moderni calcolatori di grandi dimensioni. Un certo numero di posizioni binarie sufficiente a rappresentare una significativa quantità di informazione (come un numero, una parola di un linguaggio umano, ecc.) e contenente di solito alcuni caratteri o bytes, costituisce una ‛parola' del calcolatore. Ogni parola occupa una certa posizione numerata cui essa accede o da cui viene prelevata secondo le istruzioni. Una istruzione che richiede un dato da una certa posizione deve poterlo ottenere senza attraversare una lunga serie di differenti posizioni.
Questo ‛accesso casuale' può essere assicurato grazie a un'appropriata interconnessione tra i singoli elementi della memoria. Nelle memorie dei moderni calcolatori una parola qualunque può essere localizzata e raggiunta in pochi decimilionesimi di secondo. Il costo di una memoria completamente accessibile a caso è assai elevato e diviene proibitivo se si supera la capacità di circa 100.000 parole. Se il problema da risolvere con il calcolatore implica un numero di istruzioni o di parole troppo elevato, si può provare a organizzarlo in modo che non più di una frazione del numero totale sia presente nella memoria principale del calcolatore a ogni istante. La parte rimanente viene quindi conservata in una ‛memoria secondaria' a parte che, per insiemi inferiori a parecchie migliaia di parole, non deve essere necessariamente ad accesso casuale. Tale tipo di accesso è facilmente ottenibile con dischi e tamburi magnetici, specialmente se il trasferimento di blocchi avviene con frequenza molto inferiore a quella dei trasferimenti delle singole parole dalla memoria principale di lavoro, per cui non occorre che sia altrettanto rapido. Il modo più economico per memorizzare grandi quantità di informazioni, dell'ordine dei milioni di parole, è il nastro magnetico, in cui l'accesso è completamente sequenziale, e non casuale, lungo tutta la bobina, e può richiedere dei minuti. Nella gerarchia delle memorie, in un sistema di dimensioni molto grandi, può accadere che l'informazione debba fluire da questa memoria grande e lenta, attraverso uno stadio intermedio rappresentato da dischi e tamburi, alla memoria più piccola e veloce che costituisce la memoria principale, e viceversa. Tali complicazioni sono giustificate dal fatto che la velocità del calcolatore dipende in gran misura da quella della sua memoria, così come il costo totale del calcolatore è definito principalmente dal costo della memoria principale.
L'‛unità centrale' di un calcolatore comprende una ‛sezione aritmetica' e una ‛sezione di controllo'. Nella prima, le parole trattate producono impulsi che si combinano e interagiscono secondo regole aritmetiche o logiche. Le parole risultanti sono, a loro volta, conservate nella memoria. Tutto questo andirivieni è diretto dalla ‛sezione di controllo', che agisce secondo le istruzioni provenienti, una alla volta, dalla memoria. Infine, i risultati delle operazioni, memorizzati, devono essere comunicati al mondo esterno, che può essere rappresentato da un osservatore umano, da un dispositivo di controllo di un'industria automatizzata, da un archivio di dati documentari od altro. Esiste perciò una corrispondente varietà di ‛dispositivi di uscita', come schede perforate, registratori a nastri magnetici, stampanti veloci su carta, altoparlanti, schermi di tipo televisivo, generatori di impulsi.
Oltre a queste tre classi essenziali di dispositivi: memoria, unità centrale, dispositivi di entrata-uscita, un moderno sistema di elaborazione può comprendere particolari calcolatori aggiuntivi o intermedi e una rete di collegamenti per la trasmissione di dati tra la parte centrale del sistema ed eventuali parti collocate distanti da questa. La distinzione tra organi centrali e periferici di un calcolatore tende a diventare sempre più sfumata e, in futuro, i servizi di elaborazione potranno addirittura essere forniti da una vasta rete di dispositivi interconnessi; proprio come oggi un consumatore riceve l'acqua da una rete di tubazioni alimentata da diversi serbatoi dislocati a notevole distanza, o la corrente elettrica da una rete di distribuzione e non da una singola stazione generatrice.
Dai primi calcolatori elettronici del 1950, l'attrezzatura è divenuta sempre più veloce e di più ridotte dimensioni. Il limite estremo verrà posto dalla velocità della luce (nessun segnale può percorrere una distanza pari a 30 cm in un tempo inferiore a un miliardesimo di secondo, cioè a un nanosecondo) e dalla agitazione termica (nessun corpo materiale è veramente fermo al disotto di una certa dimensione minima).
L'attuale tecnologia è ancora molto lontana dall'aver esaurito l'intera gamma di quel che è fisicamente possibile e, da qui a qualche tempo, possiamo attenderci ulteriori perfezionamenti nell'attrezzatura dei calcolatori per quanto riguarda la velocità e la compattezza. Così pure, potrà accrescersi il volume dei dati e la complessità dei problemi che potranno essere trattati ad un dato costo.
b) Corredo.
Un calcolatore, come ogni altra macchina, può eseguire soltanto quelle operazioni che sono state esplicitamente definite in precedenza da un essere umano. L'operazione di definire la sequenza dei passi aritmetici e logici che devono essere eseguiti e di presentare tali passi in una forma che possa essere direttamente passata al calcolatore è chiamata ‛programmazione'. La sua realizzazione in una forma scritta o comunque registrata, pronta per l'uso specifico, è un ‛programma'. Il termine corredo (inglese software) definito poco sopra, si applica genericamente e collettivamente a ‛qualunque' insieme o tipo di programmi. In origine esso si riferiva principalmente a ciò che definiamo ‛corredo del sistema' (v. sotto, 4); questa restrizione è oggi superata nell'uso corrente.
1. Algoritmi. - Per scrivere un programma, cioè una serie completa di istruzioni per il calcolatore, dobbiamo conoscere quali passi siano coinvolti nel procedimento di soluzione di un dato problema. Tale conoscenza è spesso espressa da un insieme sequenziale di regole, chiamato ‛algoritmo', che si applica a una intera classe di problemi e situazioni simili. Il concetto di algoritmo può essere illustrato dal seguente esempio: trovare il massimo divisore comune di due numeri interi positivi. Un algoritmo adatto, proposto per primo da Euclide, è: dividere il più grande dei due numeri per il più piccolo e annotare il resto. Se il resto è 0, il numero minore (divisore) costituisce la soluzione del problema. Se il resto è 1, la soluzione è 1. Se il resto è maggiore di 1, dividere per il resto stesso il numero minore originale e annotare il nuovo resto. Continuare fino ad arrivare a 0 o 1.
Altri esempi di algoritmi potrebbero essere facilmente citati; essi possono riguardare operazioni numeriche più complicate (per es.: trovare il giorno della settimana corrispondente a una certa data) oppure una logica non numerica (per es.: trovare la via attraverso una rappresentazione grafica di un labirinto).
Nella maggior parte dei casi si troverà che un dato problema può essere affrontato e risolto in molti modi diversi, espressi da diversi algoritmi. Una volta scelto e perfezionato un algoritmo conveniente - ciò che resta tuttora compito di un essere umano e non di una macchina - si può scrivere il programma, cioè la sequenza dei comandi per la macchina. La diversità dei programmi capaci di risolvere il medesimo problema riflette non solo la diversità dei possibili algoritmi, ma anche il fatto che lo stesso algoritmo può essere spezzato in passi elementari e presentato al calcolatore in molti modi differenti, allo stesso modo in cui la comunicazione tra due esseri umani può avvenire in molte lingue.
2. Livelli di linguaggio. - Ogni passo elementare (che, in ultima analisi, è sempre della forma ‟chiudere o aprire certi interruttori in certi circuiti o in certe posizioni della memoria") nella macchina funzionante avrà luogo come risposta a un segnale codificato ottenuto da una parola di istruzione. Il programma può specificare i singoli passi elementari esplicitamente, nel qual caso si dice allora ‛codificato nel linguaggio-macchina'. Poiché nessun segnale è accettato dalla macchina se non è espresso in forma numerica, il linguaggio della macchina, o ‛linguaggio-macchina', è fondamentalmente un codice di configurazioni di bits, che tuttavia è rappresentato all'esterno della macchina con un codice mnemonico di lettere e di numeri. La sua struttura e versatilità è interamente dipendente dalle possibilità offerte dal tipo di attrezzatura del calcolatore.
Una semplice operazione aritmetica, quale può essere quella di sommare due numeri, A e B, può rappresentare più passi elementari: trovare ed estrarre A dalla memoria, trovare ed estrarre B, sommare, memorizzare il risultato. Un insieme di simboli leggibili dalla macchina e di regole ‛sintattiche', con cui li si possano combinare insieme per formare delle ‛frasi' (come C=A+B, o altre più complicate che coinvolgono varie funzioni, oppure la scelta fra due o più alternative, ecc.), costituisce un linguaggio di livello superiore, o ‛linguaggio evoluto', rispetto al linguaggio-macchina, che è il più basso o, se si vuole, quello elementare. L'insieme dei programmi in linguaggio-macchina che ‛traduce' le frasi del linguaggio evoluto nell'insieme equivalente di istruzioni del linguaggio-macchina, normalmente molto più numerose, è chiamato ‛compilatore'. Questa particolare traduzione, detta anche ‛compilazione', viene fatta prima dell'esecuzione del programma risultante ed indipendentemente da essa. Dal punto di vista di un utente che scrive il suo programma nel linguaggio evoluto, il compilatore per tale linguaggio è una parte integrante del sistema di elaborazione, altrettanto essenziale quanto una qualsiasi parte dell'attrezzatura.
3. Fortran, Cobol, Algol, e altri linguaggi. - Quando apparvero i primi linguaggi evoluti, verso la metà del decennio 1950-1960, e i fabbricanti di calcolatori cominciarono a fornire i primi compilatori, si dovettero soddisfare le seguenti due richieste: 1) poiché il cervello umano e il calcolatore non lavorano allo stesso modo, la via più facile per l'uomo per affrontare un problema può essere inadeguata e grossolana per la macchina, e viceversa; perciò nella maggioranza dei casi si richiede un compromesso; 2) un programmatore può trovarsi nella necessità di usare macchine di diverso tipo senza con ciò voler imparare un linguaggio differente per ognuna di esse. Perciò il linguaggio evoluto deve essere sufficientemente versatile per poter essere tradotto in una varietà di linguaggi-macchina.
Il primo linguaggio evoluto che ebbe larghi consensi fu il FORTRAN (abbreviazione per FORmula TRANslator, ovvero traduttore di formule) sviluppato da un gruppo di ricercatori diretti da J. Backus e reso disponibile dalla IBM nel 1957. Il linguaggio fu strutturato in un modo particolarmente adatto alla macchina. Una minore adattabilità alla macchina avrebbe allungato il tempo-macchina, che a quei tempi era considerato come un bene da usare con parsimonia anche a costo di un maggiore sforzo umano. Nonostante tale limitazione e indubbiamente anche a causa della parte di primo piano avuta dalla IBM nel mercato dei calcolatori, il Fortran divenne di uso universale ed esso è ancora preponderante nella maggioranza dei settori scientifici e tecnologici in cui si debbano eseguire calcoli numerici lunghi e complicati.
A mano a mano che i calcolatori cominciarono a diffondersi nelle banche, nelle gestioni aziendali, nelle procedure di pagamento e in altre operazioni del mondo degli affari, il loro tipo di impiego prevalente cambiò e si orientò verso problemi piuttosto semplici, quali l'ordinamento di dati, ricerche di archivio, ecc., ove c'è necessità di elaborare grandi masse di dati. Un altro linguaggio IBM, il COBOL (abbreviazione di COmmercial Business Oriented Language, ovvero linguaggio destinato a essere applicato a problemi commerciali), fu creato per tale scopo e oggi è il linguaggio evoluto più usato. Le sue istruzioni hanno una presentazione verbale piuttosto che matematica.
Verso il 1960, si cominciò a capire che il tempo-macchina sarebbe diventato relativamente meno costoso e il tempo di programmazione relativamente più caro col complicarsi e l'ampliarsi dei problemi affrontati. Pertanto si comprese che lo sviluppo dei linguaggi d'elaborazione doveva tendere verso una maggiore facilità di espressione matematica ed umana. Risultato di ciò fu l'ALGOL (abbreviazione di ALGorithm Oriented Language, ovvero linguaggio destinato a essere applicato agli algoritmi), elaborato da un gruppo di università europee. La sua disponibilità in forma di compilatori completamente adeguati non è ancora largamente estesa come per il Fortran. La logica dell'Algol è ottimizzata per quel tipo di problemi che attualmente sono trattati, anche se in maniera più laboriosa, col Fortran. Per nuovi e diversi tipi di applicazioni, come l'elaborazione di espressioni algebriche, di grafici, eccetera, vengono ormai proposti sempre nuovi linguaggi il cui numero totale ammonta attualmente a diverse centinaia. La tendenza generale è sempre più quella di orientarsi verso i problemi specifici. Tra i pionieri di tali linguaggi in matematica possiamo qui citare il LISP (abbreviazione per LISt Processor, ovvero elaboratore di liste, introdotto da J. McCarthy prima del 1960, adatto per problemi di algebra simbolica, di logica non numerica e di strutture di dati complicate) e il BASIC, sviluppato a Dartmouth dopo il 1960 per operazioni interattive (v. sotto, È c). Per altre categorie di problemi, quali il riconoscimento di figure, il progetto industriale, ecc., si sono sviluppati appropriati linguaggi specializzati.
Come illustrazione della soluzione di un semplice problema matematico con il Fortran, presenteremo il sopra citato algoritmo euclideo in una forma tipo Fortran: 1) memorizza i due numeri nelle locazioni di memoria note come A (per il numero maggiore) e B; 2) dividi il numero memorizzato in A per quello memorizzato in B; tieni nota del ‛resto'; 3) sottrai 1 dal ‛resto'; 4) se il risultato è negativo, stampa il valore memorizzato in B come soluzione del problema e concludi l'operazione; 5) se il risultato è zero, stampa 1 come soluzione del problema e concludi l'operazione; 6) se il risultato è positivo, sostituisci il numero finora collocato in A con il numero finora collocato in B e poni il ‛resto' nella locazione B; 7) vai all'istruzione 2, eseguila con i nuovi valori memorizzati e prosegui come prima.
Le autentiche frasi di Fortran corrispondenti a questa descrizione sono ovviamente molto diverse, poiché esse sono scritte in simboli convenzionali direttamente traducibili in comandi di macchina invece di essere espresse verbalmente in termini comprensibili per l'uomo, come è stato fatto nell'esempio.
4. Sistemi e applicazioni. - L'utente di un complesso sistema di calcolo deve avere a sua disposizione un insieme di programmi che permetta di controllare il funzionamento dei vari organi della macchina secondo le esigenze, di distribuire le varie richieste assicurando la massima efficienza, di stampare le informazioni utili, ecc. Questo insieme di programmi è noto come ‛il sistema operativo' e solitamente è, o dovrebbe essere, fornito dal costruttore, a meno che l'utente non voglia adattare la macchina a certi impieghi non previsti. I compilatori ed altri ausili di programmazione universalmente applicabili costituiscono un'altra parte del corredo che deve essere fornita con la macchina. Le due parti insieme costituiscono quello che solitamente viene chiamato il ‛corredo del sistema'. Tutti gli insiemi dei programmi che appartengono a un particolare tipo di applicazioni - per esempio quelli che consentono al calcolatore di risolvere una certa classe di problemi matematici o logici, di elaborare un insieme di dati provenienti da qualche particolare dispositivo di entrata, oppure di controllare un processo automatizzato - sono noti come ‛corredo applicativo'. Essi si rivolgono all'utente piuttosto che alla macchina, specie se sono scritti in un linguaggio evoluto accettato da diversi tipi di macchine.
L'attuale complessa e versatile attrezzatura è inutilizzabile senza il corredo del sistema ad essa abbinato e il cui costo è divenuto assai rilevante, specialmente se viene incluso anche un corredo applicativo ugualmente indispensabile. Questa importanza del corredo come uno dei fattori decisivi del costo aumenterà ancora nella misura in cui la relazione tra il calcolatore e i suoi utenti assumerà una forma più complicata (v. sotto, cap. 3).
c) Modi di operazione.
Un calcolatore molto costoso è un investimento di capitale e quindi, per quanto possibile, deve essere sempre mantenuto in funzione al massimo della capacità d'impiego. Tuttavia, se le richieste provengono da numerosi utenti indipendentemente, esse assai difficilmente giungeranno con regolarità tale da non creare dei vuoti o delle code fastidiosi. Lo stesso problema di squilibri temporali esiste all'interno del calcolatore, in particolare quando la sequenza delle istruzioni di un programma richiede un certo tempo, come nel caso della ricerca in una memoria che sia accessibile soltanto a blocchi, oppure in quello di una operazione di entrata-uscita. Gli organi più veloci, e più costosi, del calcolatore possono in tal caso trovarsi ad attendere inoperosi.
Un primo passo verso il superamento di tali inconvenienti è l'‛elaborazione d'insieme' o batch processing: ciascun compito è sottoposto al calcolatore dopo un tempo di attesa medio che consente di regolarizzare il flusso. Per ogni insieme, l'ordine esatto di arrivo dei compiti da svolgere non è necessariamente lo stesso seguito nella loro esecuzione. In una fase successiva di elaborazione di questo metodo d'impiego del calcolatore, molti programmi indipendenti potranno essere presenti nella memoria e si potrà ordinare all'unità centrale di sospendere l'operazione su un dato programma in favore di un altro per riempire gli eventuali intervalli di attesa.
Questo modo di affrontare l'elaborazione d'insieme mediante la ‛multiprogrammazione' può essere facilmente realizzato col metodo a ‛partizione di tempo' (o time sharing), in cui i compiti non vengono più preventivamente raggruppati in un insieme, ma, tramite l'unità di controllo del calcolatore e secondo il suo programma supervisore, sono raccolti uno per volta per essere trattati non appena l'unità centrale si rende disponibile. Dal punto di vista dell'utente, il calcolatore a partizione di tempo si comporta, eccezion fatta per un certo ritardo nel tempo di risposta, come se non esistessero altri utenti. Questa comunicazione individualizzata ha luogo normalmente a distanza su una telescrivente bidirezionale. Il terminale a distanza dell'utente può anche contenere uno schermo di tipo televisivo sul quale i risultati dell'elaborazione sono riprodotti in forma grafica. Questa possibilità è di particolare importanza in molte applicazioni di ingegneria (progettazione, controllo della produzione, ecc.).
Il ritardo inerente al sistema a partizione di tempo può essere sostanziale in termini di velocità operativa del calcolatore anche se difficilmente può essere rilevato in termini di riflessi e reazione dell'utente. Ricevuta quasi instantaneamente la risposta al suo problema, l'utente può immediatamente proporre il problema successivo e la comunicazione diventa perciò un dialogo (modo ‛interattivo'), che è una forma di impiego del calcolatore particolarmente valida quando la soluzione di un problema è un procedimento iterativo che richieda un continuo riadattamento del pensiero umano. Più in generale, quando un calcolatore è in grado di eseguire la sue funzioni matematiche o logiche e produrre il risultato ‛immediatamente' (cioè, senza un ritardo intollerabile) per la scala dei tempi dell'utente, si dice che esso opera ‛in tempo reale'; caratteristica questa che consente di eseguire una grande varietà di operazioni, come la prenotazione a distanza di posti su linee aeree, la conduzione di processi automatizzati, l'insegnamento programmato (v. sotto, cap. 3, ÈÈ a-c).
I calcolatori a partizione di tempo installati presso università e altre grandi istituzioni possono facilmente servire molte decine di terminali remoti. L'attuale tendenza è chiaramente quella di creare reti di calcolatori intercollegate (v. sopra, fine È a) accessibili in tempo reale da numerosi terminali di utenti in un modo che richiama i sistemi telefonici regionali e internazionali.
3. Applicazioni.
a) Cosa si può fare con i calcolatori.
Confrontati con il cervello umano, i calcolatori operano a una velocità molto superiore, soprattutto in quelle situazioni in cui l'assenza di errori è essenziale. Ciò consente di affrontare dei problemi che finora erano sempre sembrati al di là dei limiti delle capacità umane.
La varietà di queste nuove applicazioni è stata una delle sorprese dei nostri tempi. La velocità unita alla precisione può essere utilizzata per: a) eseguire ‛catene' di calcoli aritmetici e logici estremamente ramificate e lunghe; b) conglobare in una singola e complicata elaborazione ‛volumi' di dati molto grandi; c) controllare dei processi automatici in cui sia essenziale dare una rapida ‛risposta', in tempo reale, ai dati introdotti. Nella nostra rassegna delle applicazioni ci riferiremo brevemente a queste tre caratteristiche dei calcolatori come ‛C', ‛V', ‛R', anche se in futuro la lista delle applicazioni sarà certamente estesa ad aspetti che non possiamo oggi prevedere. Tutti i campi recentemente aperti alle applicazioni dipendono, in diverso modo, da una o più d'una di queste possibilità fondamentali. Lo stesso vale per le applicazioni meno spettacolari in cui i calcolatori eseguono solo ciò che l'uomo ha sempre fatto, finché si è trovato che lo stesso lavoro poteva essere compiuto dal calcolatore più in fretta, a minor costo e con maggior sicurezza dei risultati.
b) Modi di impiego.
Per dare un'idea della grande varietà degli usi, attuali e di futuro sviluppo, dei calcolatori, cercheremo di fare una certa classificazione. Alcuni casi particolari possono essere raggruppati insieme, o perché in essi il calcolatore è utilizzato in modi simili, tramite catene di operazioni similari, o perché essi appartengono al medesimo campo di attività umane. Cominceremo col definire le categorie dei modi operazionali di applicazione; procederemo quindi a mostrare come la diversità delle esigenze umane si rifletta nella scelta della tecnica più adatta.
L'Association for Computing Machinery (ACM) nel 1968 ha proposto un utile elenco dei modi d'impiego correntemente in uso, che noi parzialmente seguiremo.
1. Analisi numerica. - I calcolatori sono largamente impiegati per eseguire le quattro operazioni aritmetiche che, peraltro, vengono universalmente eseguite con l'ausilio di calcolatrici da tavolo oppure manualmente senza alcuno strumento di calcolo. Non c'è nessuna differenza di principio tra questi calcoli e altri, più complicati, quali la valutazione delle più comuni funzioni (radici, logaritmi, funzioni trigonometriche, ecc.) o di altre meno comuni (per es., funzioni di Bessel, funzione gamma, ecc.); la soluzione di equazioni algebriche; le operazioni con vettori e matrici; la determinazione di medie e di indici statistici; l'approssimazione numerica di espressioni matematiche assai complicate, ecc. Lo studio sistematico di tali operazioni costituisce un ramo della matematica, noto come analisi numerica, che esisteva molto prima dell'avvento dei calcolatori, ma che da allora è divenuto molto più importante, poiché, quando sono in gioco soltanto dei procedimenti numerici - e non sono quindi implicati concetti matematici più elevati -, il calcolatore è ‛superiore' al cervello umano. In particolare, l'analisi numerica stimolata dai calcolatori ha rivoluzionato il nostro modo di affrontare le equazioni differenziali e integrali ed ha esteso enormemente la nostra capacità di trovare le soluzioni numeriche di quei problemi in cui sono implicate tali equazioni. La capacità ‛C', precedentemente definita, è essenziale in questo contesto, così come la capacità ‛V' aumenta la potenza di tutti i tipi di metodi statistici e la capacità ‛R' permette quelle applicazioni che dipendono dalla possibilità di avere risultati numerici entro pochi secondi, o anche meno, dall'arrivo dei dati di ingresso.
La soluzione di un problema può richiedere un certo tempo anche se esiste un insieme di regole note che la possano facilmente determinare (metodi ‛algoritmici' di risoluzione). È assai più probabile che occorra più tempo quando si debba procedere per tentativi secondo giustificazioni principalmente intuitive o empiriche (metodi ‛euristici' di risoluzione). Ma anche ciò che è lento per un calcolatore particolarmente capace in ‛C', può essere accettabile in una scala di tempo umana. Il nostro giudizio su ciò che è possibile diventerà più ottimistico e audace quando saremo in grado di impiegare euristicamente i calcolatori in problemi particolarmente nuovi, poco noti e che necessitano di molti tentativi e prove. Il contrasto tra il modo deterministico e quello euristico di affrontare un problema (che può essere un modesto aspetto del più grande e profondo contrasto tra la logica e l'intuizione) non esiste solo nell'analisi numerica, ma anche in molti altri modi di impiego del calcolatore.
2. Elaborazione dei dati e gestione degli archivi. - Molte attività umane comportano l'esecuzione di operazioni di conteggio e di misura: gli insiemi dei ‛dati' che ne risultano devono essere trattati secondo certe regole particolari, che possono variare da caso a caso, ordinati ed infine conservati in ‛archivi' facilmente accessibili. I dati, forniti da un operatore umano o da un dispositivo di conteggio o di misura, come avviene sempre più spesso, devono essere presentati in una forma tale che possa essere letta dal calcolatore, e cioè secondo una sequenza di bits (v. sopra, cap. 2, È a) che possa essere direttamente trattata dagli organi di entrata. Fino a questo stadio, l'elaborazione dei dati può essere un'operazione complessa che richiede un'attrezzatura, un corredo e talvolta anche un calcolatore separati, cioè dedicati appositamente a tale funzione.
La gestione degli archivi con l'ausilio dei calcolatori comprende varie operazioni, quali la preparazione, la classificazione, la strutturazione e l'identificazione numerica, la quale apre la via alla successiva utilizzazione dell'archivio per mezzo del calcolatore. Questa molteplicità d'impiego dei calcolatori per la gestione degli archivi di dati, è alla base di molte delle applicazioni che troveremo elencate in seguito (v. sotto, È c).
3. Manipolazione dei simboli. - Le regole dell'aritmetica costituiscono degli esempi di una sola particolare classe di operazioni logiche, applicate a un solo tipo di operando. Procedimenti appropriati di codificazione consentono ai calcolatori di applicare ogni tipo di logica a tutti i possibili tipi di operandi: i simboli propri dell'algebra, del calcolo, della teoria dei grafi e di molti altri sistemi del pensiero logico non necessariamente di tipo matematico. In ordine di tempo, le operazioni numeriche sorsero per prime e i primi linguaggi di programmazione evoluti, come il Fortran, furono concepiti specificamente per quello scopo. Dall'introduzione del Lisp, avvenuta attorno al 1960, e d'altri linguaggi più adatti per la manipolazione dei simboli, quest'ultima categoria di applicazioni ha avuto un più rapido sviluppo. In questo stadio, ancora esplorativo, ci si avvale particolarmente della capacità ‛C' dei calcolatori, ma non è lontano il tempo per uno sfruttamento più intenso delle capacità ‛V' ed ‛R'.
4. Elaborazione dei testi. - I testi, scritti o comunque registrati, costituiscono una classe speciale di sequenze di simboli che merita un cenno a parte perché comprende una varietà straordinariamente grande di significati ed è quindi di particolare importanza nelle discipline umanistiche. L'elaborazione dei testi con il calcolatore può richiedere operazioni quali l'analisi statistica della frequenza di una certa parola o di una sequenza di parole, la quale può dare un'informazione essenziale sull'origine del testo; oppure la riduzione del contenuto significativo di un testo a un minimo di simboli chiave facilmente identificabili e rintracciabili; o, ancora, il trasferimento di significato da una sequenza di simboli a un'altra. Questo modo di applicazione è progredito secondo vari indirizzi, seguendo sforzi intensi, strettamente adattati a un compito specifico (per es., amministrazione di una biblioteca, traduzione di un documento da una lingua in un'altra, esame critico e comparato di testi di religione, letteratura e diritto). Un insieme di tecniche più equilibrato e flessibile potrà derivare dagli sviluppi futuri.
5. Grafica del calcolatore. - Esistono dei dispositivi di uscita dei calcolatori (tubi a raggi catodici di tipo televisivo, registratori di microfilm, tracciatori meccanici) i quali presentano i risultati di una elaborazione in forma visibile, per esempio sotto forma di figure bidimensionali, costituite da linee e punti, o di rappresentazioni prospettiche molto realistiche di oggetti tridimensionali. Le rappresentazioni figurative di tale tipo possono aver valore per archiviare dei documenti e ancor più nei casi in cui servano solo per uso temporaneo e possano essere modificate in risposta a dei dati di ingresso nuovi o mutati, introdotti dopo un esame visivo. La grafica del calcolatore, per la capacità umana di cogliere con uno sguardo il significato essenziale di una figura, è un modo di ‛operazione interattiva' particolarmente potente (v. sopra, cap. 2, È c): essa è di crescente impiego nella ricerca matematica, nell'elaborazione dei dati scientifici, nel progetto industriale ed in altri studi che comportano schemi, diagrammi di flusso e modelli visivi.
6. Simulazione. - Il concetto di ‛simulazione' è strettamente legato a quello di ‛modello' (matematico). Talvolta, ci si vuole rendere conto di come una certa situazione - come per esempio le condizioni meteorologiche osservate a un certo istante, oppure un campo di battaglia, o un mercato - reagisca normalmente, nel tempo, a fattori che tendano a modificarla. Questi fattori possono dipendere dalla situazione stessa o dall'ambiente circostante e possono anche includere interventi deliberatamente provocati da decisioni umane. Se si è in grado di esprimere la situazione e ciò che ne provoca i cambiamenti con precisione adeguata e in tutti i dettagli di rilievo nella forma di un ‛modello', cioè di un insieme di dati numerici e di funzioni matematiche, allora, almeno in linea di principio, v'è la possibilità di ottenere il risultato voluto mediante il calcolo - che di fatto ‛simulerà' la procedura come si suppone che possa svolgersi nella realtà. Nella maggior parte delle situazioni pratiche, il calcolo sarà così laborioso da richiedere necessariamente l'uso di un calcolatore.
Un calcolatore può operare soltanto su un insieme di dati completamente definiti in tutti i dettagli. Tuttavia tale perfezione non è raggiungibile nell'ambito della nostra conoscenza del mondo reale. Può darsi che si debbano fare diversi tentativi, con insiemi differenti di dati iniziali e di interventi; ma se si può assegnare una probabilità definita a ogni alternativa, si potrà conoscere la probabilità con la quale ogni singolo risultato potrà avverarsi.
Questo metodo probabilistico può essere esteso ulteriormente: in fisica, il moto di un gran numero di particelle può essere studiato senza conoscere il percorso e la velocità di ogni singola particella, così come nelle scienze sociali il comportamento di una folla può essere previsto pur ignorando in che modo si comporterà esattamente ogni persona presente. Per simulare questi fenomeni di tipo statistico con un calcolatore, i dettagli che non si conoscono vengono rappresentati da numeri presi casualmente. Si calcolano quindi i singoli casi separatamente, si fa la media per un gran numero di risultati e si determina la soluzione del problema statistico.
La simulazione fatta con il calcolatore mediante l'uso di numeri casuali è nota col nome di ‛metodo Monte Carlo'. Esso fu applicato per la prima volta poco dopo il 1950 ad alcuni problemi di fisica matematica. Poiché situazioni definite statisticamente sono presenti nella maggior parte delle nostre attività quotidiane, nella tecnica, nelle comunicazioni, nei trasporti, nelle transazioni in affari, ecc., i calcoli del tipo Monte Carlo vanno acquistando un'importanza pratica sempre crescente. Le simulazioni deterministiche che comportano l'esame di un insieme di alternative precise non sono però meno importanti come strumento di indagine per i moderni metodi scientifici di pianificazione e di amministrazione.
Nella maggioranza dei casi di interesse pratico, il modello matematico deve comprendere una variabile che funga da tempo simulato. Ciò, tuttavia, non è indispensabile e si possono immaginare delle sequenze logiche più astratte, quali per esempio si incontrano nei vari problemi di matematica pura.
Come mezzi per accrescere la nostra conoscenza, gli esperimenti che si compiono con il calcolatore si distinguono sia dalla deduzione teorica, sia dalla reale esperimentazione, e tuttavia non sono di minor valore. È da ritenere che queste tecniche avranno un posto preminente tra i vari metodi della conoscenza scientifica.
7. Recupero delle informazioni. - In un archivio di dati trattati da un calcolatore (v. sopra, 2) ogni elemento possiede la propria identificazione numerica. Per rispondere a una richiesta di rintracciamento di informazioni, un calcolatore deve eseguire una ricerca nell'archivio fino ad individuare l'elemento richiesto o fino a determinare che non è disponibile. La richiesta può riguardare un'intera classe di singoli elementi come nel caso, ad esempio, di una ricerca bibliografica, ove occorra trovare tutti gli elementi il cui contenuto, descritto in codice, soddisfi la richiesta anch'essa in codice, o nel caso di una prenotazione di posti su un aereo, ove si tratta di trovare tutti i voli che soddisfano la richiesta, e nei quali ci siano posti disponibili. Una richiesta può anche essere formulata in modo che la ricerca sia ripetuta ad intervalli specificati.
Se l'archivio è stato organizzato opportunamente, la ricerca delle informazioni è un'operazione che, nella maggior parte delle applicazioni attuali, non richiede un calcolatore con particolari caratteristiche ‛C' o ‛V'. Per delle richieste semplici e rapide si richiede al calcolatore una certa capacità del tipo ‛R' e gli strumenti adatti alle operazioni interattive ed a distanza.
8. Intelligenza artificiale. - Questo termine è stato definito come ccapacità di apprendere e decidere, analoga a quella umana'; oppure, rinunciando a una definizione esplicita, si indica con ‛intelligenza artificiale' un elenco di prestazioni come, ad esempio, dimostrazione di teoremi; soluzione di problemi per via euristica; riconoscimento di forme, ecc. Per alcuni l'‛intelligenza artificiale' non è altro che l'aspetto ‛divertente' della scienza dei calcolatori. Forse la sorpresa nel vedere una macchina che si comporta proprio come un uomo è il criterio necessario per decidere se una data operazione appartiene all'ambito dell'intelligenza artificiale. Quando ci si sarà familiarizzati con questo modo d'operare, allora si cercherà una definizione diversa, più adeguata. L'ambito di lavoro, quale oggi si intende, comprende alcune operazioni logiche elementari del tipo della soluzione di problemi o di giochi come gli scacchi, alcuni processi mentali ancor oggi poco noti, come il linguaggio, e vari esperimenti di laboratorio nei quali il calcolatore è dotato di organi di senso e di manovra. Un esempio tipico è il montaggio, secondo un piano prestabilito, di una struttura prefabbricata. La capacità ‛C' è la più importante allo stato di sviluppo attuale di questo settore.
9. Controllo dei processi. - In molti procedimenti di interesse specifico, si ha a che fare con un flusso di oggetti materiali che attraversa un certo sistema. Alcuni esempi sono: il moto controllato di particelle cariche in una apparecchiatura di ricerca nucleare; la produzione di manufatti meccanici o chimici; il traffico di veicoli in un'area urbana; l'atterraggio e il decollo di aerei; il lancio, il volo orbitale e il recupero di un veicolo spaziale. Le condizioni del processo e le velocità di flusso devono essere regolate spesso o continuamente - le tensioni devono essere incrementate o diminuite, le valvole aperte o chiuse, i mezzi chimici riscaldati o raffreddati, i veicoli accelerati o ritardati, ecc. - per assumere valori che assicurino le migliori prestazioni e i migliori risultati. Le regolazioni avvengono in risposta alle condizioni osservate.
Le azioni di controllo del processo (raccolta dei dati osservati, definizione ed esecuzione degli interventi) sono eseguite da operatori umani in alternativa o in aggiunta a dispositivi automatici. L'automazione completa comporta necessariamente una certa elaborazione istantanea dei dati quando il processo è relativamente complicato, cosa che d'altronde è ormai normale nella maggior parte delle applicazioni. Il calcolatore deve essere connesso direttamente, o essere, come si dice, ‛in linea' con il resto del sistema di controllo ed assicurare una risposta rapida e attendibile (capacità ‛R'), specialmente se è breve il tempo disponibile per l'intervento. Infatti, il vantaggio essenziale offerto da una completa automazione, sta nella risposta agli stimoli esterni più rapida di quella umana, combinata con una capacità ‛C' superiore a quella dell'uomo nell'eseguire le sequenze di deduzioni che conducono all'azione. Ciò apre la via all'adozione di una grande varietà di processi controllati che un tempo non era assolutamente possibile realizzare.
10. Sistemi per l'istruzione programmata. - In molte delle sue importanti applicazioni, il calcolatore deve assumere nello stesso tempo ruoli differenti sicché la qualità delle prestazioni dipende da come si riesce a coordinare tali differenti aspetti. Come esempio significativo di questo modo misto di funzionamento possiamo menzionare l'impiego del calcolatore nell'istruzione (abbreviato in CAI, dall'inglese Computer Aided Instruction). Un sistema CAI completo ed aggiornato comporta la possibilità del recupero delle informazioni (v. sopra, 7), della grafica interattiva (v. sopra, 5), alcuni aspetti dell'intelligenza artificiale (v. sopra, 8) ed anche il controllo dei processi (v. sopra, 9); ammesso che l'accrescersi graduale della conoscenza di chi apprende si possa riguardare alla stessa stregua di un processo programmabile.
La comunicazione bidirezionale tra il calcolatore e lo studente avviene di solito mediante una telescrivente munita di uno schermo video. Attualmente, sono in via di sviluppo dei sistemi in cui un insieme limitato di frasi può essere compreso e quindi riprodotto dal calcolatore. Il vantaggio del calcolatore rispetto a un insegnante risiede principalmente nella rapidità delle risposte e nella possibilità di partizione dei tempi, il che consente al calcolatore di condurre dei ‛dialoghi' individuali con molti studenti nello stesso tempo, di fare loro delle domande e valutarne le risposte. Sta anche divenendo possibile la presentazione delle informazioni che devono essere apprese in una forma adatta alla mentalità di ogni singolo studente. In questa acquisizione graduale delle funzioni tradizionali dell'insegnante, il calcolatore svolge un curioso ruolo intermedio: esso deve apprendere dall'uomo e il suo metodo d'insegnamento dev'essere programmato anzitempo, ma a sua volta deve poi assumere nei confronti dell'allievo la funzione informatrice e programmatrice.
c) Campi di applicazione.
Un elenco delle applicazioni del calcolatore, di interesse oggi o nel prossimo futuro, richiederebbe una rassegna sistematica, in pratica, di tutte le attività umane. Più modestamente, proveremo a darne qui un'illustrazione adeguata, menzionando una varietà di settori nei quali le tecniche di elaborazione sono state impiegate con successo o ci si aspetta che lo siano in un breve tempo. Ciò si verifica sia per convenienza economica sia in quei casi in cui il calcolatore è insostituibile. I singoli casi saranno raggruppati in tre classi a seconda dell'aspetto che acquista in essi il maggior rilievo: la conoscenza, il valore economico, oppure l'interazione con l'uomo.
1. Scienza. - Si fa uso dei calcolatori per estendere le nostre capacità mentali a nuovi settori ancora poco noti o per consolidarle nei campi già aperti. L'accrescersi della capacità mentale si ricollega di solito ad alcuni progressi compiuti nella conoscenza sistematica di un dato settore - progressi che possono essere valutati non soltanto per il loro valore intrinseco, di scienza ‛pura', ma anche per qualche ragione ‛più pratica'. Non sorprende, pertanto, che i primi modi di impiego, previsti da Babbage e dai suoi seguaci per la loro macchina, contenessero una forte motivazione scientifica, mentre, a partire dal 1945, lo sviluppo dei calcolatori verso dimensioni e velocità crescenti fu determinato dalle esigenze della scienza applicata nei settori in espansione e adeguatamente sovvenzionati.
La nostra rassegna delle attività di tipo scientifico incomincia con la ‛logica' che è una branca del sapere di particolare importanza nella progettazione e nell'uso dei calcolatori; la parola ‛logica', in effetti, serve a designare alcuni dei componenti dei calcolatori. Il progetto e l'uso dei linguaggi evoluti (v. sopra, cap. 2, È b) appartengono invece alla logica come disciplina; lo stesso vale per la maggior parte dei settori della ricerca e della tecnologia (in particolare, v. sopra, È b, 3, 6 e 8).
Matematica. Nella teoria dei numeri (per es., dimostrare che un dato numero molto grande è primo), nel trattamento di matrici e di equazioni differenziali, ecc., la funzione del calcolatore è quella di uno strumento conveniente e talvolta decisivo applicato ad un campo preesistente del pensiero. Oltre a questo impiego ausiliario, la programmazione del calcolatore può essere vista come un modo nuovo e indipendente di sottoporre delle entità reali a un'analisi di tipo matematico che però non è più una parte della matematica come è stata intesa finora.
Fisica. In tutte le sue branche, la fisica dipende ormai completamente dall'impiego del calcolatore. Le tecniche dell'analisi numerica (v. sopra, È b, 1) sono usate in misura tale da sfruttare appieno anche i calcolatori più capaci e potenti oggi disponibili, soprattutto nei problemi di fisica delle particelle e di fisica nucleare. La ricerca nel campo dei grandi acceleratori (come quello del CERN - Comitato Europeo per la Ricerca Nucleare - in Europa) si basa sui calcolatori anche per problemi di tipo non numerico quali il controllo delle apparecchiature (v. sopra, È b, 9), la raccolta dei dati (v. sopra, È b, 2), il riconoscimento di figure registrate fotograficamente (v. sopra, È b, 8) e la simulazione del comportamento delle particelle (v. sopra; È b, 6). Quest'ultimo tipo di problemi è comunissimo nella fisica dei plasmi e dei reattori nucleari. Anche nelle branche di più antica tradizione, come la termodinamica, l'ottica e la meccanica dei mezzi continui, i calcolatori hanno contribuito, con la loro versatilità ed adattabilità, al conseguimento di numerosi risultati.
Chimica. Studio teorico delle configurazioni elettroniche nei legami chimici; raccolta dei dati sul comportamento chimico di nuovi composti; studio di strutture mediante l'uso della cristallografia a raggi X, del microscopio elettronico e della diffrazione di neutroni; controllo in ‛tempo reale' della preparazione e dell'analisi; alcuni risultati particolarmente brillanti come la scoperta della struttura delle proteine o l'attuale più chiara comprensione della chimica degli esplosivi, sarebbero stati impensabili senza l'ausilio dei calcolatori.
Scienze naturali. La geofisica e la geochimica, al pari delle loro scienze d'origine, la fisica e la chimica, beneficiano delle nuove possibilità di raccolta e valutazione dei dati. Negli studi meteorologici ed atmosferici, sia la simulazione sia la teoria dei modelli matematici sono particolarmente valide.
Astronomia e scienza dello spazio. Nuovi potenti metodi applicati ad antichi problemi di meccanica celeste; elaborazione dei dati nell'osservazione ottica e nella radioastronomia; teoria matematica, trattamento dei dati ed esperimenti con il calcolatore in astrofisica: nel nuovo settore dell'astrotecnologia e dell'esplorazione dei pianeti, il ruolo di primo piano dei calcolatori, in tutti i loro possibili modi d'impiego, è stato sufficientemente messo in evidenza in libri, articoli e in genere nella letteratura scientifica e fantascientifica, da non richiedere altri commenti in questa sede.
Scienze biologiche. Indagini statistiche e di correlazione tra forme di vita affini, in botanica e in zoologia; teoria e simulazione dell'equilibrio e dello squilibrio ecologico; fisiologia: raccolta di dati in tempo reale sul funzionamento degli organismi, nella ricerca pura e nelle applicazioni mediche; statistica della nutrizione e delle epidemie, schedari di dati medici trattati elettronicamente.
Scienze umane e sociali. Psicologia: osservazione in tempo reale, statistica, simulazione del comportamento, analogie e differenze tra uomo e macchina nel loro modo di trattare concetti e situazioni; antropologia: raccolta e trattamento dei dati; sociologia: censimenti e altre indagini sociologiche, teoria matematica delle relazioni sociali, simulazione dell'accrescimento della popolazione, del flusso di informazioni vere o false attraverso la popolazione, della propagazione di nuove tendenze, oppure simulazione di elezioni, ecc.
Economia. La completa dipendenza dell'economia dall'impiego dei calcolatori deriva principalmente dalle esigenze di raccolta, classificazione ed elaborazione dei dati connessi con il funzionamento dell'economia locale, nazionale o internazionale. Insieme con le statistiche demografiche, queste furono tra le prime applicazioni dei mezzi meccanici al calcolo. Un altro impiego dei calcolatori deriva dalla tendenza ad automatizzare la teoria economica, in particolare col metodo della simulazione (v. sopra, È b, 6).
Linguistica, traduzione, letteratura. Il rinnovamento totale della linguistica negli ultimi decenni non è stato soltanto aiutato, ma anche parzialmente motivato dall'avvento dei calcolatori. In aggiunta ad alcuni campi di ricerca nei quali l'impiego del calcolatore è di per sé ovvio, quali la fisiologia e la demografia del linguaggio, alcune applicazioni hanno attirato notevole interesse sia come oggetti di studio, sia per i risultati pratici. Tra queste, v'è l'uso del linguaggio parlato per una comunicazione reciproca tra l'uomo e la macchina in luogo delle tastiere e delle stampanti attualmente impiegate. Poi vi è la possibilità di tradurre da una lingua a un'altra, il che si è dimostrato di realizzazione più difficile di quanto non si pensasse all'inizio: i traduttori umani possono essere aiutati dai calcolatori, ma al momento attuale, non corrono il rischio di essere soppiantati dalle macchine. Questa simbiosi con i calcolatori aumenterà col crescere della nostra conoscenza, ancora oggi molto imperfetta, di quello che realmente è il fenomeno fisico del linguaggio. Lo sviluppo e lo studio di nuove forme di linguaggi per il calcolatore contribuirà certamente a questo tipo di conoscenza. Un altro campo connesso con la linguistica applicata, dove si fa uso del calcolatore, è la statistica della frequenza delle parole e della struttura della frase; questa applicazione si è rivelata importante per lo studio degli stili letterari, dell'identificazione e datazione degli autori, delle dottrine bibliche e storiche, ecc.
Biblioteche e archivi. Le raccolte ordinate d'informazioni scritte o comunque registrate sono essenziali in tutti i campi dell'attività umana, compreso l'approvvigionamento dei beni e dei servizi. Quando si pensa a una biblioteca, si pensa, in realtà, a un sistema di raccolta e conservazione dei dati del sapere. L'automazione di un sistema di documentazione, come di una biblioteca, si attua in tre stadi. Nel primo, si tiene traccia del flusso degli oggetti materiali all'interno della collezione: acquisizione, sistemazione nell'insieme già esistente, prestito, disponibilità, ecc. Nel secondo, si catalogano tali oggetti, secondo il contenuto, ciò che dà la possibilità di ritrovare l'informazione, ricercandola in quei documenti che si pensa possano contenere il tipo di informazione desiderata (v. sopra, È b, 7). Liste stampate e vari tipi di visualizzazione sono ormai in uso come mezzi pratici di comunicazione con gli utenti umani, a volte anche situati a distanze considerevoli. Nell'ultimo stadio, in fase ancora piuttosto sperimentale, il calcolatore stesso diverrà il mezzo vettore delle informazioni: non dirà all'utente soltanto quale documento può interessarlo ma gli fornirà, di fatto, in modo visibile delle porzioni del testo o addirittura gliele leggerà.
2. Amministrazione e affari. - In questo secondo campo di applicazione, i calcolatori contribuiscono sia direttamente, sia indirettamente alla produzione, alla distribuzione ed al trasporto. Fino a qualche secolo fa il ‛lavoro' svolto dall'uomo consisteva principalmente in vere e proprie azioni materiali: di zappatura, martellamento, trasporto, ecc., mentre le decisioni più semplici, come stabilire chi dovesse eseguire una certa azione, come e quando, erano per lo più dettate dalle circostanze, né sembravano costituire una parte di rilievo del lavoro complessivo da compiere. Nelle attività produttive su più vasta scala, tale situazione si è oggi capovolta: le operazioni materiali vengono svolte dalle macchine, sicché, non sono più considerate alla stregua di un vero e proprio lavoro, mentre le decisioni e le direttive devono tener conto di un numero di fattori e di alternative molto più grande.
Sia che si abbia a che fare con veri e propri oggetti materiali (come è nel caso di tutte le attività commerciali e industriali), o con entità più astratte (come nella finanza e nell'amministrazione), o anche con gli stessi esseri umani (come, per es., nei trasporti e negli insediamenti), il ‛lavoro' di decidere e dirigere ha sempre la medesima natura e può essere definito secondo i seguenti tre livelli.
A. ‛Strategia' nelle decisioni riguardanti l'andamento globale dell'azione. Di fronte a una situazione che comprenda una serie di risultati da ottenere mediante mezzi adeguati, bisogna decidere il modo di procedere per raggiungere lo scopo nel più breve tempo possibile o con la minima spesa di materiali e di lavoro (economia), oppure il più possibile in accordo con le caratteristiche desiderate (qualità), ecc. In una situazione complessa tipicamente moderna, il modo di ottenere tali ottimizzazioni non è mai ovvio e a mano a mano che i dati iniziali e le alternative possibili diventano più numerosi, diventa sempre più indispensabile procedere con l'ausilio dei calcolatori. I metodi di applicazione dei calcolatori a rappresentazioni opportunamente semplificate di situazioni reali sono divenuti recentemente uno strumento importante delle attività decisionali di amministrazione. Due esempi tipici sono la ‛programmazione lineare', che si occupa in particolare dei problemi di distribuzione delle risorse, e la ‛pianificazione delle reti', normalmente volta all'ottimizzazione dei tempi. Le tecniche di simulazione possono anche essere adoperate per valutare il risultato più probabile conseguibile con uno o più modi d'azione proposti.
B. ‛Decisioni tattiche'. Dopo aver definito lo scopo e la via da seguire, per l'effettiva realizzazione del corso d'azione deciso si deve tener conto dei possibili cambiamenti nella situazione delle risorse, delle influenze esterne e dei progressivi risultati dell'azione stessa. L'attenzione è ora volta alla disponibilità e all'elaborazione dei dati che descrivono la situazione. La valutazione di tali dati, che determina le direttive dell'azione, è un problema di relativa routine che per molti aspetti può essere programmato in precedenza e risolto dal calcolatore. Se un'attività produttiva o un trattamento materiale sono intesi come ‛procedimenti' prestabiliti, del tipo di quelli citati in precedenza (v. sopra, È b, 9), la gestione tattica è una forma di controllo, che, nella misura in cui è eseguita dal calcolatore, rientra nella categoria dell'automazione - termine oggi largamente impiegato nell'amministrazione e negli affari.
C. A livello di esecuzione, devono essere date delle indicazioni selettive, come per esempio quale pulsante premere su un certo pannello di controllo, quale scheda estrarre da un certo schedario per un esame particolare, quale blocco di materiale prelevare da un certo deposito, quale somma pagare e a quale cliente, ecc. È qui che il concetto di automazione, inteso come la sostituzione totale o parziale del lavoro umano con quello del calcolatore acquista il suo valore più significativo.
Alcuni tra gli esempi più facilmente osservabili di organizzazione basata sull'uso del calcolatore sono praticamente comuni a tutti i campi dell'attività umana: il lavoro d'ufficio in genere, la contabilità, gli archivi del personale e le procedure di paga dei salari presentano ovunque le stesse caratteristiche. Altri esempi dell'impiego dei calcolatori, più specifici per le singole categorie di attività, possono essere elencati nel modo che segue.
Governo. Raccolta, archiviazione e riassunto dei dati riguardanti eventi relativi a problemi di demografia, emigrazione, installazione, impiego, ricchezza, tassazione, delinquenza, ecc.; invio di singoli avvisi e raccolta delle risposte; studi di simulazione relativi a leggi e regolamenti in via di progettazione; registrazione e valutazione dei voti nelle elezioni.
Finanza. Registrazione delle transazioni (assegni, ecc.) in forma adatta alla lettura della macchina (per es. stampati con inchiostro magnetico); tenuta dei conti e preparazione dei vari moduli; pagamento tramite carte di credito; verifica della solvenza; studio sullo stato dell'economia in relazione alla pianificazione a lungo termine.
Progettazione e industria. Calcoli, progetti e disegni automatizzati; assegnazione e movimento di materiali e di mano d'opera; controllo dei procedimenti e produzione automatizzata.
Commercio. Immagazzinamento e trasporto delle merci; contabilità di magazzino e ordinazioni connesse; elenco dei clienti, delle ordinazioni e dei crediti; pianificazione ed esecuzione di campagne pubblicitarie e di vendita.
Trasporto. Controllo del flusso dei veicoli, delle navi e dei velivoli; treni automatizzati urbani e interurbani; prenotazione dei posti su treni, navi, aerei ed alberghi; accettazione, trasporto e consegna delle merci.
Servizi e comunicazioni. Registrazione di ogni servizio effettuato; fatturazione ed esazione; indagine dei fabbisogni e dell'adeguatezza del servizio.
3. Professioni ed attività di importanza sociale. - Il confine tra le azioni del tipo ‛uomo-macchina' e quelle del tipo ‛uomo-uomo' non è facile da tracciare, tuttavia per i nostri scopi non è necessario un rigore estremo. Quando un'attività genera un prodotto (sia esso del tutto concreto come nel caso di attività industriali, o più astratto come un conto o una decisione amministrativa) è relativamente facile immaginare come essa possa essere eseguita da una macchina piuttosto che da un operatore umano, anche se l'utente del prodotto finale può essere più o meno sensibile alla variazione di stile che risulta da tale sostituzione. Le interazioni umane dirette sono più difficilmente suscettibili di automazione e i mutamenti prodotti nello stile e nel costume dall'introduzione dell'automazione sono ancor più sorprendenti. Ma la differenza, così caratteristica dei nostri giorni, tra la crescente richiesta di beni e servizi e l'aumento del costo del lavoro umano, porta ovunque a un maggiore uso dell'automazione. Al pubblico possono anche non piacere le onnipresenti schede IBM, così rigide e scarsamente rispondenti ai bisogni individuali e alle situazioni insolite, tuttavia talvolta esse sono, e sempre più saranno nel futuro, la sola scelta praticamente possibile per fornire in qualche modo una risposta.
Nella maggior parte dei rapporti umani su larga scala la pianificazione e il trattamento dei dati mediante la macchina ha luogo secondo le stesse linee delle attività produttive già considerate (v. sopra, 2). Alcune considerazioni più specifiche sull'impiego del calcolatore sono illustrate dagli esempi e dai commenti che seguono.
Legge. C'è un rapporto bilaterale tra questa professione e i calcolatori. Come strumento, il calcolatore fornisce un accesso efficiente alle informazioni legali e anche a quei dati che hanno rilievo nell'esercizio della legge (statistiche sui crimini, resoconto dei singoli casi, registri di marchi depositati, ecc.). D'altra parte, l'incidenza crescente dei calcolatori in tutti gli aspetti della vita civilizzata sta creando una gran varietà di situazioni legali senza precedenti. Si sono già ampiamente discussi degli argomenti di contenuto legale, quali l'abuso di archivi di dati che riguardano gli affari di privati cittadini; diritto di copia dei programmi dei calcolatori, riconoscimento del valore legale ai risultati forniti dal calcolatore. Partendo da questi e da altri simili precedenti, dovrà senza dubbio essere creata e resa operante la futura struttura legale di una società sempre più assistita dai calcolatori.
Difesa. Le attività militari - sia che esse tendano a prevenire la guerra o a vincerla - non sono sostanzialmente così diverse da quelle che abbiamo già considerato; ciò che dà loro un posto a parte è il carattere di urgenza, che assicura una generosa distribuzione di risorse ed una migliore predisposizione verso le innovazioni. Talvolta può sembrare che la ‛guerra dei bottoni', in tutti i suoi aspetti (rilievo e valutazione di dati di valore militare, pianificazione strategica e tattica, logistica e trasporto, artiglieria e missili a controllo automatico, ecc.), abbia aperto nuovi modi di dominazione sul mondo. Aspirazioni di questo tipo, come quelle in molti settori d'applicazione dei calcolatori, dovranno probabilmente fare i conti con una migliore comprensione del fattore umano e del suo rapporto con le tecniche d'elaborazione.
Sanità e medicina. Ogni paziente rappresenta per il medico un problema di ricerca scientifica applicata che deve dar luogo a una diagnosi. In alcuni ospedali moderni il paziente può essere sottoposto per diverse ore a un esame, condotto dal calcolatore, nel corso del quale vengono raccolti e valutati in tempo reale dei dati funzionali quali la temperatura, la pressione del sangue, la velocità del battito cardiaco, ecc. In laboratorio, le analisi dei fluidi organici e l'osservazione dei campioni dei tessuti e delle cellule (riguardo alla loro forma e alle dimensioni) vengono fatte coi metodi della scienza sperimentale e, quindi, utilizzano i calcolatori su scala sempre più vasta. Quando il trattamento richiede un equipaggiamento elaborato, come in radioterapia o in chirurgia, i calcolatori possono avere un ruolo indispensabile.
L'archiviazione e l'individuazione istantanea dei singoli dati individuali è una caratteristica assai importante nella pratica medica; e poiché tale importanza si estende oltre i limiti di un singolo caso o anche di quelli di un intero ospedale di grandi dimensioni, c'è ormai una richiesta sempre crescente di archivi centralizzati, trattati con il calcolatore, su scala regionale e nazionale. Oltre la portata dell'intervento locale, gli archivi medici e le loro valutazioni statistiche hanno una fondamentale importanza in campi di interesse collettivo, quali la salute pubblica e il controllo delle epidemie.
Educazione. L'istruzione con l'ausilio del calcolatore (CAI) nel senso immediato e ristretto del termine, è stata già descritta (v. sopra, È b, 10). È da credere che essa si sostituirà a quella tradizionale dovunque ciò possa essere più economico e non s'accompagni a un peggioramento qualitativo, e anche quando la disponibilità di parecchi programmi individuali sia più importante dell'approfondimento di un singolo programma, come nel caso di argomenti elementari e di semplici questionari. All'estremo superiore della scala educativa, il calcolatore costituisce ancora una sorgente di informazioni ed un valido ausilio per la soluzione dei problemi.
L'educazione, intesa come attività su vasta scala, presenta problemi di gestione e amministrazione che, come tali, vanno trattati con il calcolatore secondo modalità già descritte. Va inoltre osservato che, come nel caso della professione legale, il rapporto tra educazione e calcolatori ha due aspetti, poiché il loro crescente diffondersi in tante diverse applicazioni è esso stesso un processo educativo.
Mezzi di comunicazione di massa e occupazioni per il tempo libero. Nelle visioni di fantascienza non mancano gli automi che riassumono le notizie del giorno e le comunicano direttamente stampate o su uno schermo televisivo oppure che recitano commedie o che sono impegnati in partite spettacolari. Nel mondo reale queste attività hanno tuttavia conservato la loro natura tipicamente umana, quand'anche vengano praticate su scala sufficientemente vasta da giustificare un trattamento con il calcolatore.
Se questa distinzione tra fantasia e realtà sarà sempre valida, resta da vedere. La crescente familiarità con la simbiosi tra l'uomo e la macchina nella vita e nel lavoro moderni può estendersi al nostro tempo libero in modo imprevedibile. Per poter discutere dei passatempi creatitivi dobbiamo comprendere meglio cosa sia la creatività e se la creazione artistica possa essere automatizzata. I calcolatori possono essere impiegati per analizzare lo stile con cui l'artista cerca di esprimersi e per produrre delle imitazioni efficaci, o anche per sviluppare delle tecniche così impersonali da suggerire una creatività loro propria. È però tuttora aperta la questione se un poema, una canzone o un quadro prodotti dal calcolatore siano di natura diversa dalle immagini del caleidoscopio o dalle composizioni casuali di suoni che in passato hanno spesso costituito una fonte di ispirazione per l'artista.
4. Alcuni dati statistici sui calcolatori e sul loro impiego. - Un quadro completo, dal punto di vista statistico, del posto occupato oggi dai calcolatori nell'economia mondiale, che mostri le tendenze passate e future e le differenze tra paesi e tra campi d'applicazione, sarebbe troppo controverso e troppo soggetto a rapidi cambiamenti per avere un qualsiasi valore pratico. Le seguenti informazioni statistiche, dedotte da varie fonti autorevoli, possono illustrare quantitativamente ciò che un giorno sarà possibile e indispensabile sapere: 1) il valore dell'attrezzatura da calcolo installata nel mondo tendeva ad aumentare negli anni intorno al 1970, al ritmo di un raddoppiamento ogni sei anni; 2) la frazione relativa agli Stati Uniti in questo totale mondiale ammontava a circa 5/8 nel 1965, ma si prevede un calo a poco meno di 1/2 per il 1975; 3) la crescita della spesa totale per i calcolatori (macchine, operazioni, programmazione) in un paese tipicamente avanzato come l'Inghilterra si prevede che per il 1980 si ponga al medesimo livello dell'economia nazionale in generale; la sua frazione del prodotto nazionale lordo si stabilizzerà quindi attorno al 5%; 4) la parte dell'attrezzatura vera e propria nella spesa globale tende a diminuire (per l'Inghilterra: di poco superiore al 50% nel 1965, di poco superiore al 25% nella previsione per il 1980); 5) la stragrande maggioranza dei calcolatori è impiegata in attività produttive: industria, finanze, servizi (Stati Uniti, nel 1969: 80%, di cui il 33% nella sola industria); 6) in una grande organizzazione scientifica le spese di calcolo ammontano a poco meno del 10% del bilancio totale (CERN, 1971).
4. Considerazioni conclusive.
Nei tempi andati si sognava una società in cui ognuno fosse ricco, libero dalla fatica del lavoro e da ogni tipo di disciplina. Ai nostri giorni si accresce il sospetto che tali mete siano di fatto incompatibili.
Gli utopisti che ancora restano salutano nei moderni calcolatori il mezzo concreto per realizzare i loro sogni. L'attività e il lavoro puramente muscolari sono divenuti ormai largamente superflui; ora i calcolatori sono sul punto di abolire non solo la pura e semplice fatica mentale, ma anche quelle vaste aree di lavoro in cui il muscolo umano deve essere usato come strumento motore controllato dal pensiero. Se i beni e i servizi sono disponibili praticamente senza spesa alcuna, scompariranno dunque fatica e costrizione?
Il trasferimento del lavoro dagli uomini ai calcolatori ha attualmente i suoi ovvi limiti; una nota ricorrente nella nostra rassegna delle applicazioni del calcolatore (v. sopra, cap. 3) è la tendenza verso una simbiosi ottimale tra uomo e macchina e non già verso la supremazia della macchina sull'uomo. Può sembrare che stiamo per avvicinarci alla seconda alternativa, ma abbiamo anche raggiunto una migliore comprensione del perché tale obiettivo - oltre ad essere praticamente (e forse anche concettualmente) irraggiungibile - è, soprattutto, allucinante.
A mano a mano che diventano disponibili i prodotti di quei settori in cui l'automazione è già stata realizzata, cominciamo a renderci conto che i prodotti corrispondenti dell'epoca in cui l'automazione non c'era ancora contenevano un quid in più, frutto della diretta manipolazione umana. I cibi trattati per poter essere conservati a lungo negli scaffali dei supermercati hanno già da parecchio tempo sostituito i cibi confezionati e distribuiti a mano; ci hanno detto che sono ‛scientificamente' equivalenti, ma noi sappiamo come stanno le cose. L'uso dei calcolatori per progettare e realizzare mobili, terapie e attività amministrative, può bastare a garantire ad ognuno un'esistenza oziosa ed opulenta. Ma coloro che pensano che non varrà la pena di condurre una vita siffatta, si sentiranno confortati dall'opinione di un eminente specialista di calcolatori sulla prospettive della società automatizzata. Egli pensa che l'azione di controllo sarà sempre costretta a ‟utilizzare concetti imprecisi, idee ambigue e persino filosofie contraddittorie; questa capacità è una caratteristica peculiare della mente umana, una capacità tuttora assolutamente incomprensibile. Un calcolatore digitale richiede, viceversa, informazioni dettagliate. Non possiede capacità di giudizio; ciò rappresenta il limite più grave all'applicazione dei calcolatori [...]. Per far funzionare i calcolatori è necessario un personale che ne controlli l'operato sia direttamente sia esaminando i risultati in uscita" (R. Bellman, Symposium on ‛Man and the Computer', Bordeaux 1970).
Altri esperti non sono d'accordo. Secondo H. Kahn e A. Wiener, ‟è un problema tuttora aperto quali siano i limiti intrinseci dei calcolatori. Sarebbe una delle più importanti scoperte del XX secolo se si stabilisse con certezza che essi non sono in grado di riprodurre o di migliorare certe capacità tipicamente umane" (The Year 2000). I prossimi decenni potranno portare nuove e decisive prove a favore di una tesi o dell'altra; nel frattempo dovremo cercare di mantenere l'equilibrio senza farci prendere da eccessiva euforia o da eccessivo timore.
(L'argomento è stato trattato in maniera estesissima in libri e periodici di notevole importanza, e ogni giorno si arricchisce di nuovi contributi. Le indicazioni bibliografiche sotto riportate non forniscono un panorama completo sull'argomento ma si riferiscono alle pubblicazioni alle quali abbiamo attinto più direttamente per la preparazione del presente articolo e possono essere raccomandate solo come fonti di informazioni più dettagliate e approfondite). (V. anche informatica).
Bibliografia.
Bowden, B. V. (a cura di), Faster than thought, London 1953.
Fernbach, S., Taub, A. H. (a cura di), Computers and their role in the physical sciences, New York 1970.
Ferranti, B. (a cura di), Living with the computer, Oxford 1970.
Greenberger, M. (a cura di), Computers and the world of the future, Cambridge, Mass., 1962.
Hollingdale, S. H., Tootill, G. C., Electronic computers, London 1970.
Rice, J. K., Rice, J. R., Introduction to computer science, New York 1969.
Taviss, I. (a cura di), The computer impact, Englewood Cliffs, N. J., 1970.