Calculatrices RPN (notation polonaise inversée) pour Linux
ArticleCategory: Hardware
Applications
AuthorImage:[Here we need a little image from you]
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:
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 :
- La méthode RPN économise du temps et des appuis sur les touches. Vous n'avez jamais à prendre en considération les
parenthèses lors du calcul. Le processus est similaire à la façon dont vous avez appris les maths sur le papier.
- On peut voir les résultats intermédiaires au fur et à mesure et pas seulement la réponse à la fin, ce qui est un
à-côté très pratique.
- L'affichage du résultat intermédiaire permet la vérification et les erreurs sont plus faciles à détecter et corriger.
Il est plus facile de suivre le cours du calcul. L'utilisateur définit la priorité relative des opérateurs.
- La méthode RPN est logique car l'utilisateur donne d'abord le nombre puis ensuite seulement indique ce qu'il
convient de faire avec.
- Grâce à l'évaluation des sous-calculs dès leur entrée, une erreur de saisie est plus évidente avec la méthode RPN.
Sur une calculatrice algébrique, l'oubli d'une parenthèse ouvrante ne conduit pas à une erreur de calcul avant le
moment, parfois bien longtemps après, où la sous-expression est calculée dans son intégralité.
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
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°).
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.
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.
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.
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).
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.
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.
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/)
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.
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.
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.
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.
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.
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
- page de téléchargement des version de calculatrice disponibles lors de la rédaction de cet article
- images ROM HP48, de hpcalc.org
- http://www.hpmuseum.org/, musée virtuel à propos de toutes les calculatrices HP
- area48.com/history.html, l'histoire de la fameuse calculatrice HP48
- www.transnull.com/hp48.html, FAQs et images ROM pour la HP48
- www.hp-collection.org/hewlettpackard.htm, une collection
privée de presque toutes les calculatrices HP - la page est en allemand
- www.limov.com/rcl20/, "RCL 20: des gens des rêves et des calculatrices HP" (RCL 20: People, Dreams & HP Calculators).
Voici un livre (pas de version en ligne) à propos de la fameuse HP41
- www.finseth.com/~fin/hpdata.html, base de données HP, des détails à propos de toutes les calculatrices HP
- www.hp.com/calculators/, le site officiel des calculatrices HP (tous les autres
liens ci-dessus sont des initiatives personnelles de fans de calculatrices RPN HP). Il n'y a plus grand-chose de disponible
qui provienne de HP de nos jours. Une page assez triste.