Gabriele Santinelli 8 Agosto 2008
Total Page:16
File Type:pdf, Size:1020Kb
APL Gabriele Santinelli 8 agosto 2008 Indice Introduzione2 1 La notazione3 1.1 Breve storia della notazione matematica..............3 1.2 L’importanza della notazione....................6 1.3 La notazione Iverson........................8 2 Il linguaggio APL 12 2.1 La Storia............................... 12 2.2 Il linguaggio............................. 14 2.2.1 Terminologia e regole................... 15 2.2.2 Qualche esempio...................... 18 2.2.3 Le critiche......................... 22 2.2.4 Il problema dei caratteri speciali.............. 23 2.3 Interpreti contro compilatori.................... 24 2.4 Utilizzo di APL........................... 26 3 Il dialetto J 27 4 Kenneth Iverson, biografia 31 4.1 Vita................................. 31 4.2 Riconoscimenti........................... 37 Bibliografia 39 1 Introduzione APL è un linguaggio di programmazione di tipo matematico, sviluppato da IBM, che ebbe una significativa diffusione sui calcolatori mainframe degli anni ’60 e ’80. Oggi di APL rimane poco (un minimo numero di aziende ancora lo utilizza per fini commerciali), se non la comune opinione che si trattasse di un linguaggio inspiegabilmente complicato da imparare e terribilmente difficile da scrivere e - soprattutto- da leggere, come è testimoniato da questi versi in rima che ancora oggi molti utenti Unix e Linux possono leggere attraverso l’applicazione Fortune: ’Tis the dream of each programmer Before his life is done, To write three lines of APL And make the damn thing run. In realtà, mentre a prima vista può sembrare un linguaggio incomprensibile, fu concepito con l’intento diametralmente opposto. APL è stato sviluppato per essere un linguaggio semplice e facile da impare per chiunque abbia delle conoscenze matematiche di base. Caratteristica saliente del linguaggio, come avremo modo di vedere nel corso di questo lavoro, è la sua estrema concisione. L’ideatore di APL, Kenneth Iverson, viene ricordato per il suo desiderio di riassumere e sintetizzare in qualunque ambito, non solo in quello informatico. Amici e colleghi lo ricordano amichevolmente con la regola che ideò per spiegare al suo gruppo di lavoro come ridurre all’osso i documenti tecnici [20]: “Se è un paragrafo, rendilo una frase. Se è una frase, rendila un aggettivo o un avverbio. Se è un aggettivo o un’avverbio, omettilo. Applica questa regola ricorsivamente.” Questo lavoro vuole riassumere le caratteristiche del linguaggio APL e le sue radici storiche. Cominceremo, nel capitolo1, con un cenno all’importanza della notazione mate- matica e alla sua evoluzione. Nel capitolo2 proseguiremo descrivendo la nascita del linguaggio APL e le sue caratteristiche, senza però dimenticare le gravi proble- matiche che da sempre limitarono il suo sviluppo. L’attenzione si sposterà poi, nel capitolo3 sul dialetto J, sulle sue differenze rispetto ad APL e sulle novità introdotte. Infine, il capitolo4 raccoglierà la biografia di Kenneth Iverson, padre del linguaggio, il cui nome è inscindibilmente legato a quello di APL. 2 1 La notazione 1.1 Breve storia della notazione matematica Nella società odierna siamo soliti imparare i simboli matematici da bambini, come se questi fossero dogmi tramandati a noi su tavole di pietra. In realtà i simbolismi che abbiamo imparato a maneggiare fin dalle scuole elementari hanno una storia e un’evoluzione secolare tutt’altro che scontata. Tale evoluzione è descritta, anche se sinteticamente, in [14]. Le principali notazioni matematiche oggi utilizzate hanno storie diverse. Ad esempio, il simbolo di addizione “+”, il primo che viene insegnato nelle scuole elementari di tutto il globo, è probabilmente un’abbreviazione del latino et, mentre il simbolo di sottrazione “-” si pensa sia un semplice trattino usato dai mercanti per separare le indicazioni della tara (che nell’antichità veniva chiamata minus) dal peso totale della merce. Questi simboli furono usati per la prima volta da Recorde1 nel 1557 nel libro “The Whetstone of Witte”, lo stesso sul quale comparve il simbolo di uguaglianza “=”: due trattini paralleli, che scelse “perchè non esistono due simboli più uguali di quelli”. La sigma “Σ”, invece, venne probabilmente scelta perchè ricorda la somma; mentre la epsilon “2” è la prima lettera del greco esti (letteralmente “è un”) che suggerisce un’appartenenza. Anche il simbolo di integrale “R ” (una ”S” allungata) e quello di derivata “d”, introdotti da Leibniz, stanno a ricordare la prima lettera dei termini latini summa e differentia. Per indicare l’abbreviazione di una parola, era pratica comune sbarrare la prima o l’ultima lettera. Questo spiega il simbolo ancora oggi usato della Sterlina inglese (“£”, dal latino libra); del Dollaro (“$”, un’abbreviazione di pesos); del centesimo Americano ( ). g Verso la fine del XVII secolo l’uso consapevole del simbolismo nei testi mate- matici era oramai una pratica consolidata, ma non tutti i simboli venivano facilmente accettati negli ambienti scientifici. Nel 1631, quindici anni dopo aver introdotto la croce di Sant’Andrea “×” come simbolo della moltiplicazione e aver esorta- 1Robert Recorde (1510-1558), fisico e matematico britannico. Scrisse diversi libri di aritmetica, geometria e astronomia sotto forma di di dialoghi tra maestro e alunno [1]. 3 1.1 Breve storia della notazione matematica 4 Figura 1.1: La prima rappresentazione scritta di una notazione matematica. to la comunità matematica ad utilizzarlo, Oughtred2, nel libro intitolato “Clavis Mathematicae” , scrisse: “My Treatise being not written in the usuall synthetical manner, nor with verbous expressions, but in the inventive way of Analitice3 and with symboles or notes of things instead of words, seemed unto many very hard; though indeed it was but their owne diffidence, being scared by the newness of the delivery; and not any difficulty in the thing it selfe. Anche l’introduzione del sistema di numerazione arabo, caldeggiato da Fibo- nacci4 nel 1202, fece molta fatica ad essere accettato: per molte persone era più semplice continuare a sommare e sottrarre col sistema numerico Romano, dal mo- mento che questo era sufficiente per i loro bisogni. Inoltre si pensava, non a torto, che i conti nel nuovo sistema di numerazione potessero essere facilmente falsificati, per esempio cambiando lo 0 in 6 o in 9. I numeri arabi fecero la loro prima comparsa sulle monete italiane con due secoli di ritardo, nel 1424; su quelle inglesi nel 1551. Ma facciamo un passo indietro, perchè quelle notazioni che in tempi -tutto sommato- moderni hanno impiegato decine di anni per essere comunemente accet- tate, già esistevano in popolazioni antiche, seppure in forma molto più elementare, ed erano utilizzate quotidianamente, in primo luogo negli scambi commerciali o per il pagamento dei tributi. Quella che può essere indicata come la prima traccia di una notazione matematica è stata rinvenuta scolpita su un masso di granito risalente al 3100 a.C., prima ancora dell’invenzione del papiro. 2William Oughtred (1575-1660), matematico inglese. Inventò nel 1622 il regolo calcolatore. Oltre al già citato simbolo della moltiplicazione, introdusse le notazioni “sin” e “cos” per indicare rispettivamente seno e coseno [1]. 3Nonostante questo brano venga spesso citato, non sono riuscito a trovare una spiegazione di chi o cosa sia l”’Analitice“ cui viene fatto riferimento. 4Leonardo Fibonacci (1170-1250), matematico pisano. Oltre al merito di aver introdotto il siste- ma di numerazione arabo, i suoi studi sulla crescita delle popolazioni di conigli lo portarono alla definizione della successione di Fibonacci (serie in cui ogni cifra è la somma delle due precedenti [1]). 1.1 Breve storia della notazione matematica 5 Figura 1.2: I simboli che costituiscono la notazione matematica egizia. Figura 1.3: Alcuni esempi di numeri scritti in notazione egizia. Una raffigurazione di questo reperto è illustrata in figura 1.1. Si tratta di un reso- conto del trionfo di Narmer5, per poterlo leggere abbiamo bisogno della figura 1.2 come chiave di lettura. In questo modo riusciamo a capire che Narmer catturò 400 000 buoi, 1 422 000 capre e 120 000 prigionieri. Nella numerazione egizia, infatti, i simboli corrispondono a potenze crescenti di 10, cioè rispettivamente ai valori 1 (un bastoncino), 10 (un bastoncino ripiegato), 100 (una corda arrotolata), 1 000 (un fiore di loto6), 10 000 (un dito), 100 000 (una rana), 1 000 000 (una persona con le braccia al cielo). Gli altri numeri si scrivevano ripetendo questi simboli il numero di volte necessario per arrivare al valore voluto, come mostrato negli esempi di figura 1.3. La base usata è quella decimale e, come nel sistema Romano, è assente la notazione posizionale. Per alcuni studiosi la loro origine porebbe essere legata a questioni fonetiche; per altri i simboli potevano essere direttamente ricollegati a questioni più pratiche, per esempio la corda era uno strumento comunemente usato dagli Egizi per misurare i campi e la principale unità di misura era il khet, pari a 100 cubiti, da qui il simbolo della corda per indicare il numero 100. Essendo la notazione matematica egizia di tipo additivo, il calcolo delle addi- zioni era banale (ed analogo a quello romano): per addizionare due o più valori 5Narmer, Re dell’Egitto che fondò la prima dinastia che univa l’alto e il basso Egitto. 6Loto, pianta acquatica dai grandi fiori bianchi o rosa. 1.2 L’importanza della notazione 6 bastava infatti mettere insieme i simboli di ciascuno degli addendi, ed eventualmente effettuare le opportune semplificazioni sostituendo dieci occorrenze di uno stesso simbolo col