RPN o Algebrico

RPN (Reverse Polish Notation) o algebrico? Questa domanda era il cardine delle guerre di religione fra i fanatici delle calcolatrici Hewlett-Packard (HP) e quelli delle Texas Instruments (TI).

In realtà l'RPN non è stato esclusivo appannaggio di HP. Nel passato ci sono stati diversi produttori che avevano utilizzato RPN (persino in Unione Sovietica) ma negli anni 80 la competizione sul mercato era soprattutto tra HP e TI.

Le differenze sono notevoli come evidenziano questi due semplici esempi. Supponiamo di voler effettuare la somma di 27 e 36. In algebrico si digita:

27 + 36 =

In RPN si digita:

27 ENTER 36 +

Supponiamo ora di voler calcolare l'espressione (3sin(5 + 2) + 4) * 5. In algebrico:

(3 * sin(5 + 2) + 4) * 5

In RPN:

5 ENTER 2 + SIN 3 * 4 + 5 *

L'RPN ha prima vista può sembrare più difficile ma in realtà è molto più vicino al modo di pensare che si utilizza quando si fanno i conti a mano. In questo modo il calcolo risulta più efficiente e più facilmente controllabile. Anche per un programmatore è assai meglio. L'algebrico invece obbliga ad usare le parentesi e, con espressioni complesse, era molto facile confondersi. Dico era perché oggi con le calcolatrici si sono evolute e persino le calcolatrici economiche come la Casio fx-350MS o quella Firstline SC01.1 hanno un display a doppia riga che permette di controllare le espressioni scritte. Anche quasi tutte le calcolatrici HP oggi hanno un doppio sistema RPN/Algebrico. Anche in questo caso ci sono però dei limiti perché il sistema algebrico parte da un presupposto fondamentale: scrivere l'espressione così come si farebbe sulla carta. Quindi si può utilizzarlo al meglio solo con calcolatrici adeguate. Quelle grafiche e simboliche come la HP 50g e la TI-89 Titanium hanno capacità tali che si possono scrivere le equazioni così come compaiono sulla carta (e magari risolverle simbolicamente). E queste sono le calcolatrici di oggi. In ogni caso questa ibridizzazione tra RPN e algebrico produce dei risultati interessanti anche nelle calcolatrici di fascia media come le HP 33s e le HP 35s. E' possibile definire equazioni e inserirle come linee di programma.

Le calcolatrici HP più evolute come la HP 28S, la HP 48SX e la HP 50g utilizzano un linguaggio denominato RPL (Reverse Polish Lisp), una estensione della notazione RPN con l'aggiunta di caratteristiche del LISP e del Forth (oggetti atomici e composti, variabili lambda, garbage collection, threaded execution, RPN con stack illimitato) e che è in grado di manipolare espressioni algebriche. Il risultato è un sistema estremamente compatto ed elegante, adatto anche a risolvere problemi complessi. Anche il sistema di esecuzione del codice è affascinante. Ed è questo il motivo che continuo a preferire la mia HP 50g alla mia TI-89 Titanium. Se andassi ancora a scuola però forse mi prenderei la TI perchè le funzioni fornite sono più adatte ai problemi tipici del liceo o dei primi corsi di analisi (del resto il mercato didattico è quello di riferimento per la TI).