Laning and Zierler System

E’ uno dei primi sistemi interpretati per il calcolo scientifico, opera di J.H.Laning e W. Zierler nel 1952/53 al MIT, sviluppato su un Whirlwind Computer.

E’ stato il primo sistema a permettere una scrittura delle espressioni simile alla notazione manuale, sfruttando la capacità del dispositivo di input di accettare esponenti e permettendo l’omissione del segno di moltiplicazione fra due operandi, cosa che limitava la lunghezza dei nomi delle variabili ad 1, un esempio di espressione è la seguente: -b + F11(b2 – 4ac), dove F11 è la funzione radice quadrata.

Il linguaggio era dotato di salti condizionati dal risultato dell’ultima operazione effettuata (CP n), salti incondizionati SP n, con n o un numero di istruzione o una variabile con il numero dell’istruzione da eseguire ed infine salti a subroutine (SR n).

I tipi di dato erano aritmetici floating point organizzabili in vettori; l’indicazione di un elemento di un vettore era realizzata separando il nome del vettore dall’indice con |: a|1 o a|j per indicare il primo ed il j-esimo elemento del vettore a. I numeri soprascritti erano anche utilizzati, nella forma Fn, per indicare una delle circa venti funzioni aritmetiche native.

In origine non era dotato di istruzioni per i cicli, ma i vettori potevano essere popolati con la scrittura particolare:

v|N = n1,n2, ...,nn, oppure        es. g|N = 1,1.2,1.4,1.6,1.8,2,3,4,5,

v|N = n1(incr1)lim1(incr2)lim2...,    es. g|N = 1(.2)2(1)5,

Il sorgente qui esposto è il calcolo dell’algoritmo TPK, esso è stato interpretato da un programma in Haskell (v.HASKELL 2.31 ) che ha generato un sorgente in Algol (v. ALGOL 2.5 )[1].

     * TPK Laning e Zierler

     v|N = 1(1.2)13,

     i = 0,

   1 j = i+1,

     a|i = v|j,

     i = j,

     e = i-10.5,

     CP 1,

     i = 10,

   2 y = F1(F11(a|i))+5(a|i)^3,    

     e = y-400,

     CP 3,

     z = 999,

     PRINT i,z,

     SP 4,

   3 PRINT i,y,

   4 i = i-1,

     e = -0.5-i,

     CP 2,

     STOP 



[1] Il sorgente differisce dal listato riportato in [WEX81] pag. 49 per il non utilizzo dei soprascritti, l’inserzione del simbolo ^ per indicare l’elevazione a potenza, la gestione dei commenti e l’immissione dei dati di partenza.