Calculatrices RPN (notation polonaise inversée) pour Linux

ArticleCategory: Hardware

Applications

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to fr Jean Peyratout

AboutTheAuthor:[A small biography about the author]

Ma première calculatrice RPN était une HP15c et ce fut le coup de foudre.

Abstract:

RPN (Reverse Polish Notation) signifie "notation polonaise inversée". La notation polonaise inversée a été développée en 1920 par Jan Lukasiewicz comme une façon d'écrire une expression mathématique sans être obligé d'utiliser parenthèses et crochets. Il ne faut que quelques minutes pour l'apprendre et vous verrez rapidement que cette méthode surpasse les formules algébriques standards.

ArticleIllustration:

hp-calc and tux

ArticleBody:

Introduction

Les calculatrices de poche utilisant la notation polonaise inversée ont commencé à devenir populaires avec les calculatrices Hewlet-Packard. HP utilisait déjà cette méthode pour sa première calculatrice en 1968. Si vous faites une recherche sur Internet vous vous apercevrez qu'il existe un vrai fan-club de ces calculatrices. J'ai mis quantité de très bons liens disponibles à la fin de cet article. La plupart de ces calculatrices HP sont de nos jours des objets de collection et s'échangent pour bien plus cher que leur prix original.

Dans cet article nous verrons quelques-unes des calculatrices de bureau en notation polonaise inversée disponibles pour Linux. Nous ne nous intéresserons pas seulement aux émulateurs HP disponibles mais aussi aux autres calculatrices totalement indépendantes de HP.

Qu'est-ce que la notation polonaise inversée (RPN) ? Pourquoi faire ?

Les calculatrices en notation polonaise inversée utilisent une pile et toutes les opérations mathématiques sont exécutées immédiatement au plus bas niveau de la pile. La pile est utilisée comme mémoire pour enregistrer les résultats intermédiaires. Donc inutile d'utiliser de parenthèses sur une calculatrice RPN. On entre d'abord les nombres - on les pose en haut de la pile - puis on indique ce qu'il faut en faire.
Imaginons que l'on veuille calculer: (( 3 + 1 )^2 + 1) * 4
Pour cela on entre les commandes suivantes :
3 Entrée
1 +      (vous voyez immédiatement le résultat de cette opération : 4)

x^2      (vous voyez immédiatement le résultat de cette opération :  16)
1+       (vous voyez immédiatement le résultat de cette opération :  17)
4*       (résultat final : 68)
Pour saisir cette formule il a fallu neuf appuis successifs sur les touches, et on a pu voir tous les résultats intermédiaires. C'est fondamentalement la façon de calculer utilisée pour le calcul mental. En d'autres mots le fonctionnement de la calculatrice est beaucoup plus "naturel", il est du même type que celui utilisé par notre cerveau.

Le même calcul, écrit de cette façon, aurait nécessité douze appuis avec une calculatrice algébrique, sans que l'on puisse voir les résultats intermédiaires. Les avantages de la notation polonaise inversée sont donc :

Les calculatrices

Commençons avec quelques calculatrices simples que vous pouvez tester dans votre navigateur tout en lisant cet article et plus loin je présenterai des "machines" plus puissantes.

rpnjcalc

Cette calculatrice utilise Javascript. Elle est de ma création et fonctionne dans n'importe quel navigateur moderne (ça ne fonctionne pas correctement avec Opéra 5/6, Netscape 4, Konqueror). Elle est différente de beaucoup d'autres calculatrices javascript car vous pouvez aussi utiliser le clavier pour saisir des nombres et les opérateurs mathématiques de base. Cliquez ici pour jouer avec rpnjcalc

Nom:rpnjcalc
Site:http://main.linuxfocus.org/~guido/javascript/rpnjcalcallver.html
Licence:GPL

hp-35

Cette calculatrice utilise aussi Javascript mais plus d'attention a été consacrée à sa ressemblance avec une vraie (vieille) calculatrice HP-35 de poche. Vous pouvez la tester en ligne en suivant ce lien
Si vous voulez vraiment l'utiliser, je vous recommande de télécharger le fichier compressé ci-dessous car il utilise des images gif et le temps de réponse est beaucoup plus court quand vous l'installez localement. Notez aussi que cette calculatrice n'offre pas les mêmes fonctionnalités qu'une vraie HP35. Elle ne peut par exemple effectuer de trigonométrie qu'en degrés (0-360°).

Nom:hp-35
Site:Inconnu, récupéré depuis http://www.hpmuseum.org. Téléchargez ici hp-35.zip
Licence:GPL

dc

Cette calculatrice est une commande Unix standard que l'on trouve même sur les plus vieux systèmes Unix. Elle ne peut effectuer que des calculs arithmétiques basiques mais est capable de manipuler de très grands nombres. Pour la lancer taper simplement dc et un nombre suivi de "k" (par ex.: 6k et appuyez sur Entrée) pour régler la précision. Vous pouvez maintenant effectuer des calculs (+-*/) et afficher le bas de la pile avec "p". Le programme s'interrompt avec Crtl-d.

Nom:dc (desk calculator)
Site:Fait partie de tous les systèmes Unix. Sous Linux, le paquetage pour dc est appelé bc
Licence:en principe la même que celle de votre système Unix

vc.pl

Cette calculatrice est écrite en Perl. C'est une implémentation intéressante car c'est en fait une calculatrice vectorielle. Vous pouvez bien sûr l'utiliser aussi pour l'arithmétique normale dans la mesure ou un nombre unique n'est qu'un vecteur à une seule dimension. Elle offre un système d'aide intégré (tapez simplement help). L'installation est facile car elle n'utilise que des modules perl standard.

Nom:vc (vector calculator)
Site:http://vc-calc.sourceforge.net/
Licence:GPL

x48

Ce programme est un émulateur de la calculatrice HP-48 : vous pouvez faire tourner dessus du code HP véritable. La calculatrice n'installe que l'émulateur, pas le code de la ROM HP-48 qu'il vous faudra charger. Le programme x48 est sous licence GPL mais la ROM est bien sûr sous copyright HP. La calculatrice hp48 d'origine n'est plus fabriquée par HP et ils autorisent maintenant le téléchargement des images de ROM depuis l'année 2000. NB : C'est sympa d'avoir une calculatrice comme celle-ci à l'écran de l'ordinateur mais ça ne remplace toujours pas une HP-48 d'origine car x48 n'a pas une très bonne interface clavier. Finalement vous devez vous débrouiller en utilisant la souris la plupart du temps et c'est assez lent.

C'est parce que x48 est un émulateur qu'il peut faire toutes les opérations exactement comme la HP-48 originale. La dernière version que j'ai pu trouver était la 0.4 qui a déjà quelques années. Elle fonctionne cependant sans aucun problème. La version 0.4 a besoin d'un petit patch pour se compiler sur un système Linux moderne. Vous trouverez le manuel d'origine, quelques images ROM, le patch et des instructions supplémentaires sur la page "détails sur x48" ci-dessous.

Nom:x48
Site:ftp://www.sunsite.unc.edu/pub/linux/system/emulators/
Détails sur x48: "détails sur x48", installation, documentation, images ROM (voir aussi les liens à la fin de cet article pour d'autres images ROM)
Licence:GPL, mais une image ROM HP est nécessaire

hp67

Ce programme possède toutes les fonctionnalités d'une vraie hp67 mais il a été complètement réécrit et est indépendant du code de la hp67. Ce n'est pas un émulateur. L'interface paraît un peu basique (ncurses) mais c'est très fonctionnel. Une excellente documentation l'accompagne, sous la forme d'une page de manuel (voir lien ci-dessous). On peut même la programmer comme une vraie hp67. Pour commencer à programmer, utiliser la touche "prog" puis saisir le programme, en commençant par un nom de programme. Pour sortir du mode programmation on utilise "immed". Pour exécuter un programme "run nom_du_programme". Voici un exemple. Il n'est guère utilisable car il n'implémente que la fonction "carré d'un nombre" mais c'est pour vous donner une idée de la façon de programmer la hp67:
prog (entrer en mode programmation)

label mon_programme
ENTER
*
rtn
immed (sortie du mode programmation)
Maintenant vous pouvez utiliser "run mon_programme" pour exécuter x^2.

Nom:hp67
Manuel:La page de manuel de la hp67 au format html
Site:http://www.ibiblio.org/pub/Linux/apps/math/calc/
Licence:GPL

kalc

kalc fonctionne également en ligne de commande. Le programme utilise la bibliothèque readline et a quelques fonctions de complétion de commande. kalc fonctionne avec des nombres réels et des nombres complexes, des entiers sans limitation de taille, des nombres réels de précision arbitraire. La documentation est aussi très bonne (voir fichier pdf ci-dessous).

Nom:kalc
Manuel:kalc.pdf 230K
Site:http://sourceforge.net/projects/kalc/
Licence:GPL

dcalc

C'est encore un programme de calcul basé sur ncurses qui tourne en console. Il n'est pas programmable comme hp67 mais il convient bien pour convertir des nombres entre hexadécimal, binaire et décimal.

Nom:dcalc
Site:http://www.ibiblio.org/pub/Linux/apps/math/calc/
Licence:GPL

rpncalc

Encore une calculatrice RPN en console mais qui n'est pas sur une base ncurses. Très similaire à la commande "dc", mais beaucoup plus avancé, rpncalc implémente les fonctionnalités de la HP28s. Il peut manipuler les nombres complexes, les vecteurs et les matrices. rpncalc fait partie de Debian.
Nom:rpncalc
Site:http://www.gnu.org/directory/science/math/rpncalc.html
Licence:GPL

gdcalc

Voici une jolie calculatrice utilisant l'interface graphique gtk. Vous pouvez la configurer pour entrer vos calculs en utilisant soit la méthode RPN de notation polonaise inversée soit la méthode algébrique. Elle offre quatre modes: scientifique, financier, statistique, et un mode de conversion de nombre appelé mode de programmation ("programming mode"). Ce mode n'a cependant rien à voir avec la programmation de la calculatrice (à l'image de x48 ou hp67). Vous avez là tout ce qu'on peut attendre d'une calculatrice de bureau.

Pour pouvoir utiliser le menu de conversion d'unités, il faut avoir installé le programme units(1) qui fait partie de pratiquement toutes les distributions Linux (ou depuis ftp://ftp.gnu.org/gnu/units/)
Nom:gdcalc
Site:http://bhepple.freeshell.org/dcalc/unix/
Licence:GPL

grpn

C'est une calculatrice RPN également basée sur l'interface gtk. Elle offre les fonctions de base d'algèbre et de trigonométrie.
Nom:grpn
Site:http://lashwhip.com/grpn.html
Licence:GPL

galculator

Ce programme est très similaire à gdcalc du point de vue des fonctionnalités. On peut le configurer pour utiliser la méthode de saisie RPN ou algébrique. galculator permet la conversion de nombres binaire / hexadécimal /décimal et a toutes les fonctions scientifiques de base.
galculator utilisant les toutes dernières bibliothèques gtk (gtk 2.2) risque d'être problématique à installer sur des systèmes Linux un peu anciens. C'est cependant un programme de bonne facture dont l'interface utilisateur est agréable.
Nom:galculator
Site:http://galculator.sourceforge.net/
Licence:GPL

calcoo

C'est un programme ancien, configurable soit en mode RPN soit en mode algébrique, qui convient bien pour l'algèbre de base et la trigonométrie.
Nom:calcoo
Site:http://calcoo.sourceforge.net
Licence:GPL

Kalk

C'est une calculatrice RPN basique (mais libre) pour le Palm Pilot. Le Palm ne permet pas de faire tourner Linux mais je présente ce programme parce qu'il est disponible sous licence GPL, chose rare parmi les logiciels pour Palm.
Nom:kalk
Site:http://www.klawitter.de/palm/kalk.html
Licence:GPL

GCalc

Ce n'est pas du tout une calculatrice RPN mais ce programme est toujours très très utile. C'est une calculatrice graphique en ligne basée sur Java qui permet de dessiner instantanément des graphiques dans un navigateur. Pour l'utiliser il vous faudra le greffon Java pour Mozilla ou Netscape qui fait partie du paquetage jre de blackdown.org.
Nom:GCalc
Site:http://humblestar.net/GCalc/
Licence:GPL

Conclusion

Comme vous pouvez le constater il existe des calculatrices utilisant la notation polonaise inversée (RPN) pour tous les goûts. Il en existe probablement d'autres mais les programmes cités ci-dessus sont tous sous licence GPL.

Références