IT

linguaggio scientifico

(

L

)

R

.

J

assegnazione

Z

=

U

>

V

W

+

S

-

M

*

X

/

D

potenza

P

,

K

Q

fine istruzione

F

IT (Internal Translator) è stato uno dei primi “linguaggi” per facilitare il calcolo scientifico. IT è del 1957 per il calcolatore IBM 650, è opera di A.J. Perlis, J.W. Smith e H.V. Zoeren, e deriva da un precedente lavoro per il Datatron della Purdue University. Ad IT si ispirarono successivamente RUNCIBLE, GAT, GATE e CORREGATE. La struttura di IT risente della scarsa dotazione di hardware, il calcolatore IBM 650 disponeva di 2000 voci di memoria ed il dispositivo di input aveva, probabilmente, solo lettere maiuscole e numeri.

Le variabili, numeri floating point, hanno nomi tipo Ynnn, Cnnn e Innn dove nnn è un numero, i simboli per operazioni, relazioni ed interpunzioni sono sostituiti da lettere, secondo la tabella qui accanto. Le istruzioni hanno un indirizzo numerico, arbitrario ed inferiore a 650 (forse da 651 a 2000 risiedeva l’interprete?).

Le precedenze fra gli operatori sono stabilite solamente con l’utilizzo delle parentesi.

Oltre all’assegnazione, con forma: nn var Z espressione  F,  ci sono:

·      la stampa dei risultati: nn T var1  T var2 ... F,  fino a 4 variabili,

·      il salto ad un indirizzo del programma: nn G indirizzo T F, con indirizzo eventualmente in una variabile,

·      l’esecuzione condizionata: nn istruzione IF condizione, 

·      lo stop di programma: nn H F,

·      un comando per leggere i dati di input

·      un’istruzione di iterazione avente la forma: nn mmK vrbK daK passoK finoa, (nn mm, vrb, da, passo, finoa in versione “leggibile”) dove mm è l’indirizzo finale dell’iterazione, controllata dalla variabile vrb,

·      il richiamo di funzioni: nn QnnEK oper1K oper2K ...Q F  (nnmmE, oper1, oper2, ...in versione “leggibile”), in cui mm è un numero che indica una funzione.

L’esempio che segue è una “verifica” di limx→0 sen(x)/x = 1. Dopo il terminatore di riga ci sono commenti che ovviamente non appartengono ad IT. Il programma è stato interpretato da un programma Icon (v. par. ICON), che ha generato un codice sorgente in CLUP (v. par.CLUP).

1  C10 Z 0J5             F

2  C11 Z 0J4             F

3  C2 Z 0J               F C2 somma differenze fra x e sen(x)

8  19K C1K C10K M0J01K C11 M0J1K F

10 Y1 Z Q42EK C1Q        F Y = sen(X)

12 C2 Z C2 S LC1 M Y1R   F C2 sommatoria X-Y 

17 Y4 Z Y1 D C1          F 

19 T Y4                  F

21 T C2                  F

23 C10 Z C10 M 0J1       F

25 C11 Z C11 M 0J1       F

27 G 3 IF C10 U 0J4      F riciclo

29 H                     FF  halt