IT (Internal Translator) è stato uno dei primi “linguaggi” per facilitare il calcolo scientifico. IT nasce nel 1957 per il calcolatore IBM 650, ed è opera di A.J. Perlis, J.W. Smith e H.V. Zoeren: IT deriva da un precedente lavoro per il Datatron della Purdue University. Ad IT si ispirarono successivamente RUNCIBLE, GAT, GATE e CORREGATE. Per sfruttare la diffusione dei programmi FORTRAN Bob Bremer sviluppò un traduttore FORTRAN – IT.
La struttura di IT risente della scarsa dotazione di hardware, il calcolatore IBM 650 disponeva di 4000 voci di memoria ed il dispositivo di input aveva, probabilmente, solo lettere maiuscole e numeri.
Le variabili, solamente 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 sotto. Le istruzioni hanno un indirizzo numerico, arbitrario ed inferiore a 650. +SimboloCodifica(L)R.JassegnazioneZ=U>V>=W +S -M*X/DpotenzaP,K"Qfine istruzioneF Le precedenze fra gli operatori sono stabilite solamente con l’utilizzo delle parentesi.
Oltre all’istruzione di 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 (nn ″mmE, 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. Il programma IT è stato interpretato da un programma Icon, che ha generato un codice sorgente in CUPL. +Comandi IT Commento1 C10 Z 0J5 FC10 = 0.5 2 C11 Z 0J4 FC11 = 0.43 C2 Z 0J FC2 = 0C2 somma differenze fra x e sen(x)8 19K C1K C10K M0J01K C11 M0J1KF19, C1,C10,-0.01,0.1 10 Y1 Z Q42EK C1Q FY1 = "42E, C1"Y1 = sen(X)12 C2 Z C2 S LC1 M Y1R FC2 = C2 + (C1 - Y1)C2 sommatoria X-Y17 Y4 Z Y1 D C1 FY4 = Y1 / C119 T Y4Fprint sen(x)/x21 T C2 Fprint 23 C10 Z C10 M 0J1FC10 = C10 - 0.125 C11 Z C11 M 0J1FC11 = C11 - 0.127 G 3 IF C10 U 0J4FIF C10 = 0.4 GO 329 H FHalt
Categoria:Linguaggi informatici