Scienza del trattamento automatico delle informazioni - parole, numeri e altri
tipi di dati - mediante elaboratori elettronici (computer). Con la parola
computer sino a ieri si è inteso parlare di una macchina capace di
elaborare dati per scopi di calcolo. Oggi le applicazioni del computer come
sistemi di controllo sono talmente diffuse e sofisticate da far passare in
sottordine la suddetta proprietà, che rimane pur sempre l'essenza prima
della macchina. Le origini sono da ricercare all'inizio degli anni Quaranta, con
il progetto
ASCC (
Automatic Sequence Controlled Calculator) della
IBM che determinò il primo calcolatore "universale", detto Mark 1.
Nell'immediato dopoguerra John von Neumann, considerato il vero "padre" degli
attuali computer, dà inizio al progetto
EDVAC (
Electronic
Discrete Variable Computer). Si tratta di progettare il primo calcolatore
moderno, interamente elettronico, nel quale i programmi non vengano immessi
volta per volta dall'esterno, come nel caso del Mark 1, ma siano residenti nella
memoria della macchina, dalla quale automaticamente richiamarli ogni volta che
serve. La concorrenza riuscirà a capire l'idea e costruire due sistemi
(EDSAC e BINAC) basati sulla stessa struttura operativa, ormai nota come
macchina di von Neumann. Nel frattempo compare il primo mini-computer,
battezzato
Whirlwing dai ricercatori del MIT (Massachusetts Institute of
Technology), incorporante le nuove memorie a nuclei magnetici e dedicato
principalmente al funzionamento in "tempo reale", vista l'ottima velocità
di elaborazione raggiunta. La diffusione massiccia del nuovo prodotto è
legata all'avvento delle tecnologie legate al silicio. Il transistor, nato nel
1947, trova un massiccio impiego nei calcolatori nella seconda metà degli
anni Cinquanta. Parallelamente si diffondono le tecniche di memorizzazione su
supporti di tipo magnetico. Da questa seconda generazione si passerà alla
terza nell'arco del successivo decennio. Gli anni Sessanta rappresentano il vero
boom dei computer. L'avvento dei circuiti integrati permette di ridurre i costi
e gli ingombri del prodotto, aumentandone le capacità. Negli stessi anni
si diffonde largamente l'uso dei mini-computer anche in aree, come
l'amministrazione delle medie aziende, che sinora erano rimaste inaccessibili
per motivi legati all'elevato investimento necessario all'automazione delle
procedure. Dalla terza generazione si passa alla quarta, basata sull'utilizzo
dei circuiti
LSI e
VLSI (
Very Large Scale Integratio),
attraverso la crisi dell'inizio degli anni Settanta, che però preparano
l'avvento anche dei nuovi prodotti di successo legati alla piccola informatica,
come i personal-computer. Si arriva così a macchine che possono essere
suddivise nelle seguenti classi:
Main frames;
Mini-computer;
Work-station;
Personal-computer;
Home-computer. ║
Main-frames: computer ad alto costo ed alta capacità elaborativa
dedicato principalmente a scopi di calcolo o gestione di grosse memorie
centrali. In una rete di calcolatori, il
main-frame è
l'unità centrale, alla quale fanno capo tutti gli altri sistemi, siano
essi altri calcolatori o periferiche di vario tipo. ║
Mini-computer: calcolatore di medie prestazioni e costo ridotto, a priori
non dedicato ad alcun compito specifico. Il mini-computer è quindi per
sua natura un
general purpose, oggetto di tipo generale, specializzabile
dall'utente. A seconda della configurazione
hardware scelta (quali
piastre di memoria, quali unità di interfaccia montate) e del
software installato (i programmi applicativi da far eseguire), il
mini-computer può diventare una macchina da calcolo, isolata o connessa
ad una rete di calcolatori, o un controllore di processi di varia natura, o un
elaboratore di immagini o il gestore di una particolare banca dati. A tutt'oggi
è l'oggetto maggiormente diffuso in ambiente scientifico o industriale,
proprio grazie a questa enorme versatilità. D'altra parte questa
genericità della macchina si paga in termini di perdita di efficienza.
║
Work station: comparse nella prima metà degli anni
Ottanta, sono stazioni dedicate ad uno specifico "lavoro" per un singolo
operatore. Ne esistono ormai molteplici tipi dedicati ai compiti più
diversi: aiuti alla progettazione
CAD (
Computer Aided Design),
aiuti all'ingegnerizzazione
CAE (
Computer Aided Engineering),
calcolo numerico veloce, intelligenza artificiale, ecc. Il pregio delle
work-station è l'alta efficienza nello svolgere il compito
affidato. Per contro abbiamo la singola utenza (cioè un solo operatore
può stare seduto al terminale della stazione) e il relativo alto costo.
L'investimento è globalmente comparabile a quello di un mini-computer, ma
mentre quest'ultimo accetta di vedere più operatori ad utilizzare
simultaneamente la stessa macchina, nel caso delle "stazioni di lavoro" la spesa
è destinata a creare un unico posto di lavoro. Ultimamente sono state
immesse nel mercato delle
work-station multi-utente, legate ad esempio ad
una rete di personal-computer. Questa soluzione non rimuove però la
rigidità del sistema, che rimane dedicato ad un'unica funzione, e
introduce una caduta verticale delle prestazioni, in termini di efficienza, al
crescere del numero di utenti collegati. In ogni caso l'evoluzione tecnologica
gioca a favore delle
work-station, che vedranno progressivamente calare
il proprio costo sino al punto da esser una soluzione competitiva in ogni
situazione. ║
Personal-computer: si sono sviluppati in parallelo
alle
work-station, oggetti molto simili a loro perché anch'essi
destinati alla singola utenza. Il personal-computer è un calcolatore
personale, generalmente a basso costo e limitate prestazioni, che oggi si
differenzia dalla
work-station perché la sua architettura è
di tipo
general-purpose, in modo che la macchina sia utilizzabile in
ambienti diversi e per scopi molteplici. Il personal-computer gioca un ruolo
fondamentale nell'automazione d'ufficio, ma è ugualmente utile in aree
molto diverse, dai registratori di cassa per i negozi al controllo di macchine
utensili. Molti anche tra gli addetti ai lavori, considerano le
work-station e i personal-computer oggetti identici, almeno in
prospettiva, assumendo che l'unica vera differenza sia l'attuale divario di
costo, che progressivamente è destinato a scomparire. Al di là
dell'affascinante proiezione
marketing, vi è però una
profonda differenza tecnica che non è destinata a mutare nel tempo. Pur
essendo entrambe le macchine progettate per servire un utente singolo, le
work-station sono strutturate per massimizzare l'efficienza nella
soluzione di un predeterminato compito, mentre i personal-computer rimangono
oggetti
general-purpose, che cambiano le proprie prestazioni in funzione
della personalizzazione scelta dal loro proprietario e che possono svolgere
simultaneamente compiti molto diversi tra loro. Pertanto le architetture delle
due macchine sono e rimarranno diverse. ║
Home-computer: oggetti di
bassissimo costo e limitate prestazioni, parenti stretti dei video-giochi, che
tra tutte le macchine suddette sono quelli maggiormente vicini ad un utente non
specializzato. Dal punto di vista del progetto sono dei personal-computer
impoveriti, a ridotte affidabilità e prestazioni per ottenere i voluti
obiettivi di prezzo. L'unica particolarità che li distingue è lo
studio delle interfacce, dedicate agli oggetti di tipica utenza domestica, quali
impianti HI-FI o TV a colori. Gli home-computer vanno visti quindi come una
classe destinata a scomparire a causa del progressivo ridursi di costo dei loro
fratelli maggiori, i personal-computer. Questo proprio grazie al fatto che
quest'ultimi rimarranno dei
general-purpose, specializzabili pertanto
anche alle esigenze di un'utenza non professionale o giovanissima, di tipo
domestico. Grazie alle attuali tecnologie, che hanno permesso la suddetta
stratificazione dei prodotti, si è potuto parallelamente sviluppare il
fronte applicativo degli stessi. Oggi è particolarmente difficile
elencare tutte le aree di utilizzo dei computer, sarebbe forse più facile
stabilire dove ancora non sono impiegati. Si possono però schematizzare
le grandi aree applicative, che raggruppano sotto un unico cappello
realtà tecniche diverse ma omogenee per ambiente, indicando le più
recenti realizzazioni. Nel campo militare il sistema di protezione "ad ombrello"
antimissili nucleari. In quello spaziale, il computer di bordo dello Shuttle. In
quello aeronautico, il nuovo sistema di ILS. Nell'automazione di fabbrica, i
recenti sistemi informativi integrati. Nella robotica, il robot ad
autoapprendimento per il montaggio degli autoveicoli. In campo scientifico le
applicazioni sono così varie ed innumerevoli da recare un certo imbarazzo
nella scelta della più significativa. Ad ogni modo citeremo, ad esempio,
le nuove macchine di calcolo per la ricerca veloce delle soluzione di equazioni
differenziali di ennesimo ordine. Anche nella medicina il computer è
insostituibile, con l'avvento della TAC e della Risonanza Magnetica Nucleare.
Nel terziario avanzato ormai tutte le procedure burocratiche fanno capo a
programmi per sistemi computerizzati. Nelle telecomunicazioni sono dei computer
che redigono le problematiche legate al traffico internazionale, dal "gateway"
del videotel alla "mondo-visione" televisiva via satellite. Troviamo il computer
anche nell'arte, dal video-restauro delle antiche tele alla musica elettronica.
Per non parlare delle attività progettate, dall'architettura
all'ingegneria meccanica, dall'elettronica alla moda, non c'è area
dell'attività creativa dell'uomo che non trovi nel computer un fedele
alleato. Questo alleato sta oggi infrangendo le classiche barriere del calcolo
per proiettarsi verso la cosiddetta "A.I." (
Intelligenza Artificiale). La
quinta generazione di computer sarà il substrato circuitale sul quale
applicare efficacemente le nuove tecniche elaborative già sperimentate.
Ma già oggi esistono numerose
work-station organizzate
strutturalmente in modo tale da accettare la nuova logica operativa. Nel nuovo
modo di operare il risultato finale non è stabilito in modo
deterministico dall'insieme delle regole di calcolo e dei parametri presentati
in ingresso, così come avviene per le macchine calcolatrici. Bensì
si opera con il principio dell'
If....then, cioè con associazioni,
anche multiple, ad esempio del tipo "se succede questo, allora la causa
può essere questa o quest'altra". Il risultato estratto dalla "base di
conoscenza" del sistema può essere imprevedibile a priori. Inoltre ogni
risultato imprevisto dà luogo ad un ulteriore incremento reale delle
conoscenze disponibili al sistema, che diventa così un
expert-system (sistema esperto) in un dato ambiente. A questo punto
l'evoluzione della macchina non è più controllabile, né
sindacabile, dall'uomo. Difatti se tale sistema ha sicuramente molto meno
capacità e conoscenze globali di qualsiasi persona, per contro, nella
propria area applicativa, ha una efficienza e conoscenza reale (acquisita dopo
un certo tempo di attività) molto maggiore di qualsiasi esperto del
settore. Tutto ciò è stato sperimentato nel campo della
matematica, con risultati incredibili. Oggi si stanno creando sistemi esperti
nel campo militare, nella finanza, persino nella medicina. ║
I
linguaggi: il computer è un'apparecchiatura che, tramite le
istruzioni inserite dall'operatore, elabora i dati e fornisce le informazioni
richieste. La comunicazione con il calcolatore avviene tramite un linguaggio,
che è la traduzione in numeri delle istruzioni in ingresso. Esistono vari
tipi di linguaggio, di cui il più semplice è il cosiddetto
linguaggio-macchina, formato da cifre binarie (si ricordi che una cifra binaria
può assumere solo due valori, 0 e 1, e si chiama
bit).
Poiché un messaggio in questo linguaggio risulta lungo e complicato e la
ricerca di un eventuale errore quasi impossibile, si sono elaborati dei
linguaggi simbolici più vicini a quello umano e che consentono di
scrivere un programma con il sistema di numerazione decimale. Il più
semplice linguaggio simbolico è l'
Assembler, in cui vi è
una corrispondenza biunivoca con le istruzioni in linguaggio-macchina. I
linguaggi simbolici cosiddetti evoluti hanno invece un diverso rapporto con il
linguaggio-macchina: ad ogni istruzione in linguaggio simbolico corrisponde un
gruppo di istruzioni in linguaggio-macchina. Tra i primi linguaggi ad alto
livello sono da ricordare il
Fortran, ideato e prodotto
dall'équipe di John Backus a partire dal 1954, usato per applicazioni
scientifiche; il Cobol, nato nei primi anni Sessanta, destinato ad applicazioni
gestionali. A questi si sono aggiunti in seguito il PL/1, definito negli anni
Sessanta dal personale dell'IBM, la cui struttura è stata studiata per
soddisfare le esigenze delle applicazioni scientifiche e gestionali; il
Pascal, comparso nella sua prima versione nel 1970 ad opera di Niklaus
Wirth e Kathleen Jensen dell'ETH University di Zurigo. Di questo esistono
diverse versioni, la cui comune caratteristica è quella di studiare un
linguaggio atto a rendere facilmente applicabili le regole della programmazione
strutturata. Il
Basic, creato tra il 1963 e il 1964 grazie alla
collaborazione tra la General Electric ed una équipe guidata dai
professori John G. Kemey e Thomas E. Kurtz del Dipartimento di Matematica al
Darliyth College, è ora uno dei più diffusi linguaggi di
programmazione, per i molteplici vantaggi che offre: permettendo infatti un
rapporto diretto tra utente e calcolatore, riduce notevolmente il lavoro di
programmazione. È quindi particolarmente adatto ai personal-computer che,
originariamente rivolti al pubblico dei cosiddetti "hobbisti", stanno ora
invadendo svariati settori: la gestione di piccole imprese, l'istruzione
assistita da calcolatore (
CAI, Computer Aided Instruction), la
progettazione e il disegno assistito da calcolatore (
CAD, Computer Aided
Design), ecc.