La differenza essenziale fra il modo di programmare degli spe cialisti di oggi equello dei « pio
nieri » di venticinque anni fa consiste nel fatto che, ai nostri giorni, la maggior parte del la
voro è affidata allo stesso ela
boratore elettronico. Il program
matore stende un diagramma a blocchi servendosi di un
lin-78
I raggi laser usati per gli studi sul
« secondo suono » ai laboratorio IBM di Zurigo. Il secondo suono è un particolare tipo di propagazione
ondulatoria nei solidi che può portare a una migliore comprensione della struttura e
delle proprietà dei materiali.
L'apparecchiatura ottica necessaria all'esperimento è di elevatissima
precisione: vengono usati tre raggi laser. A sinistra desk top
Hewlett-Packard.
guaggio simbolico relativamente semplice; la macchina, grazie alla sua enorme velocità, si ac
colla poi l’onere di trasformare ogni simbolo usato dall’uomo in una lunga sequenza di istruzioni a lei comprensibili. Per far que sto essa agisce naturalmentesul
la base di altri programmi che le sono stati forniti in precedenza.
Lo sviluppo della programma zione si muove attorno a questa idea centrale: individuare tutte quelle fasi del lavoro dello spe cialista che presentano un carat
tere ripetitivo, isolarle, standar
dizzarle, affidarne lo svolgimen to all’elaboratore.
Inizialmente questo principio viene attuato al livello delle istruzioni elementari. Invece di indicare ogni operazione in co
dice di macchina e ogni dato con la relativa posizione in me moria, si scrive semplicemente, magari in forma abbreviata, il nome dell’operazione e quello dei dati su cui operare. Il cal
colatore, preventivamente istrui
to, comincia ad associare da solo queste nuove abbreviazioni mnemoniche con i codici di macchinacorrispondenti e a ese guire il comando ricevuto. È l’iniziodi un lungo processo ten dente a « insegnare » all’elabo
ratore una lingua simile a quella umana.
Più tardi il programmatore viene esonerato anche dall’obbli- go di ripetere continuamente va ri tipi d’istruzioni complesse che tornano a presentarsi in molti programmi, se non in tutti: le istruzioni che comandano la let
tura di una scelta, il calcolo di un logaritmo, l’aggiomamento di un dato registrato su un nastro magnetico.
Per ognuna di queste opera zioni viene scritto un sottopro gramma standard che, memoriz
zato dall’elaboratore, viene con
sultato ogni volta che nel pro gramma principale appare la corrispondente macroistruzione.
Il programmatore, ormai, non è necessariamente al corrente di tutto ciò che avviene durante l’elaborazione: una parte del programma, infatti, non è stata scritta da lui.
Attraversoquesto processo, lo sforzo quotidiano dei program matori viene messo a frutto per rendere più rapida e più sem plice la stesura dei programmi futuri. Solo così, del resto, è possibile tenere il passo con la crescita dei problemi applicativi.
Nei tempi più recenti l’enorme sviluppo della programmazione si è mosso su tre binari: la pro grammazione delle applicazioni,
79
in cui l’elaboratore è messo in rapporto diretto con un certo problema commerciale, indu striale, scientifico; la program
mazione dei sistemi, che si pro pone di progettare programmi capaci di far funzionare i siste
mi elettronici in modo più eco nomico e più efficiente; e i lin guaggi di programmazione, che forniscono gli strumenti per dia logare con la macchina in forma sempre più facile e immediata.
I linguaggi
Gli attuali linguaggi di pro grammazione — che appaiono ostici al profano, ma raffinatis
simi a chi li valuti con occhio competente — nascono dalla stessa esigenza da cui sono na te le sigle mnemoniche e le ma croistruzioni. Una volta accerta to che gli elaboratori possono essere programmati per tradurre le istruzioni dal linguaggio mne
monico nei loro equivalenti nu
merici, ci si chiede perché non dovrebbero poter essere pro grammati per tradurre asserzio
ni più generali di tipo matema tico o commerciale.
Inoltre è molto viva, fin dal l’inizio, l’esigenza di un sistema di programmazione che svincoli realmente l’utilizzatore dalla co noscenza dei meccanismi interni della macchina. Si pensi alle applicazioni di natura tecnico scientifica, per le quali lo sforzo di traduzione dalle formule ma tematiche che descrivono il pro blema al linguaggio di macchina è veramente pesante. Per di più, buona parte dei calcoli scienti
fici sono scarsamente ripetibili:
spesso, infatti, un programma serve solo per verificare la bon
tà di un’ipotesi o di un proce
dimento ed esaurita questa fun zione non ha più alcuna utilità.
Appare indispensabile, quindi, ridurre la proporzione fra tem po di programmazione (soprat tutto di minutazione) e tempo di calcolo.
Il FORTRAN (FORmula
TRANslation) è stato presenta to per la prima volta nel 1957 da un’équipe di tecnici della IBM come strumento per pro grammare la soluzione di pro blemi scientifici e tecnici. Si ba sa sul linguaggio dell’algebra, con alcune regole particolari im poste dalle esigenze dell’elabo ratore.
Se, per esempio, si vuole or
dinare all’elaboratore di calco
lare e di stampare il valore di C = A +B, quando A ha il va lore di 6,7 e B quellodi 1,4593, si deve scrivere semplicemente:
A = 6,7; B = 1,4593; C = A + B; STOP.
L’ALGOL (ALGOritmic Lan-guage) è stato sviluppato fra il
1957 e il 1960 da un gruppo internazionale ed è sostanzial
mente un’estensione del FOR
TRAN per applicazioni scienti
fiche. Ha una struttura più com plessa di quella del suo prede cessore e, quindi, offre un mag gior numero di possibilità nella definizione formale dei
proble-Un milione di numeri in un francobollo. Il dott Hung Liang Hu,
coordinatore del gruppo di ricercatori IBM che ha realizzato
per la prima volta un prototipo funzionante di memoria a reticolo
di bolle magnetiche.
Le bolle hanno un diametro di 5 micron (millesimi di millimetro) e
la distanza fra una bolla e l'altra, rli poco superiore al loro diametro.
A destra, terminale video Tektronix.
mi; allo stesso tempo, però, è più difficile da apprendere e da utilizzare praticamente, e può essere perciò adottato con van
taggio solo da parte di gruppi molto specializzati.
Il COBOL (Common Busi ness Oriented Language) è stato creato da un gruppo di specia listi coordinati dal ministerodel la difesa nordamericano, nell’in
tento di ottenere un linguaggio decisamente svincolato dalla macchina e capace di descrivere agevolmente problemi di carat
tere commerciale mediante l’uso
80
di parole tratte direttamente dal la lingua inglese.
Un esempio: per calcolare il valore di uno stock di una certa merce in funzione del prezzo, dei pezzi in magazzino e dei movimenti in entrata e in usci ta, bisognerà scrivere; COMPU- TE STOCK-VALUE = UNIT PRICE * (STOCK-ON-HAND + RECEIPTS - SHIPMENTS), dove l’asterisco significa « mol tiplica per ».
Il PL/1 (Programming Lan- guage/1), che è fra i linguaggi più recenti, compendia e mi gliora le caratteristichedel FOR TRAN e del COBOL; è, quin di, frutto di un’inversione di tendenza rispetto alla rigorosa specializzazione dalia quale si era partiti. I primissimi elabo
ratori, infatti, erano stati pro gettati per risolvere problemi o solo commerciali o sole scienti fici e i linguaggi di programma
zione studiati fra il 1950 e il 1960 riflettevano questa specia
lizzazione. Ma, nel tempo, la
differenza fra linguaggio scien
tifico e commerciale si è atte
nuata. Gli elaboratori commer
ciali erano concepiti per trattare moltissimi dati con un numero limitato di calcoli, mentre quel li scientifici dovevano fare nu
merose elaborazioni su un nu
mero ristretto di dati. Con l’ap parire nel campo degli affari di problemi più sofisticati (la si mulazione dei piani di mercato, gli studi sulla produzione) gli elaboratori commerciali comin
ciarono a esigere l’elevata velo cità operativa che fino allora era riservata agli elaboratori scientifici. Nello stesso tempo si creavano collegamenti sempre più stretti fra scienza e indu stria, fra ricercatori e operatori economici. Il PL/1 risponde ap
punto a questa esigenza e può essere utilizzato in applicazioni sia di tipo commerciale sia di tipo scientifico.
Numerosi altri linguaggi, di importanza più o meno grande, vengono impiegati per risolvere
problemi di natura particolare.
Qualsiasi linguaggio valido, co munque, si evolve incessante mente e viene progressivamente arricchito e semplificato.
Particolare interesse riveste anche, in tema di computers, l’aspetto relativo alle tecniche di controllo degli elaboratori. Se è vero che la tecnologia procede di pari passo con l’economia, è importante ottenere dall’elabora
tore il massimo rendimento pos sibile. Di ciò parleremo nel prossimo numero, soffermandoci anche sulla professione del pro grammatore e su quello che oggi si può ritenere il futuro della programmazione.
Per testi e materiale ¡cono
grafico la redazione ringrazia la IBM Italia. Appuntamento con i lettori al prossimo fasci
colo di Radio Elettronica.
81