• Non ci sono risultati.

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

Documenti correlati