Notation polonaise inverse
La notation polonaise inverse (NPI) (en anglais RPN pour Reverse Polish Notation), Ă©galement connue sous le nom de notation post-fixĂ©e, permet d'Ă©crire de façon non ambiguĂ« les formules arithmĂ©tiques sans utiliser de parenthĂšses. DĂ©rivĂ©e de la notation polonaise prĂ©sentĂ©e en 1924 par le mathĂ©maticien polonais Jan Ćukasiewicz, elle sâen diffĂ©rencie par lâordre des termes, les opĂ©randes y Ă©tant prĂ©sentĂ©s avant les opĂ©rateurs et non lâinverse.
Par exemple, sur une calculatrice, lâexpression peut s'Ă©crire en NPI sous la forme 10 Enter 5 + 3 x, ou encore sous la forme 3 Enter 10 Enter 5 + x.
Histoire
DĂ©rivĂ©e de la notation polonaise utilisĂ©e pour la premiĂšre fois en 1924 par le mathĂ©maticien polonais Jan Ćukasiewicz[1], la NPI a Ă©tĂ© inventĂ©e par le philosophe et informaticien australien Charles Leonard Hamblin (en) dans le milieu des annĂ©es 1950, pour permettre les calculs sans faire rĂ©fĂ©rence Ă une quelconque adresse mĂ©moire[2].
Un des premiers ordinateurs conçu, le Zuse 4 utilisait une pile, et une arithmĂ©tique de type NPI dĂšs 1945, avant mĂȘme que le concept soit formalisĂ©[3]. Puis d'autres ordinateurs comme le English Electric KDF9 ou le Burroughs B5000 on implĂ©mentĂ© le principe dĂšs 1963[3].
Mais la NPI se développera réellement sur les calculatrices, comme moyen de saisie interactif d'expression arithmétiques. Le premier calculateur électronique utilisant cette notation est la Friden (en) EC-132 en 1964[4] - [5].
C'est à la fin des années 1960, qu'elle a été diffusée dans le public comme interface utilisateur avec les calculatrices de bureau de Hewlett-Packard (HP-9100), puis avec la calculatrice scientifique HP-35 en 1972[1].
Implications pratiques
- lâĂ©criture est raccourcie grĂące Ă la suppression des parenthĂšses ;
- un rĂ©sultat intermĂ©diaire peut ĂȘtre rĂ©utilisĂ©. Par exemple dans le calcul de on voit rapidement que l'expression est utilisĂ©e deux fois. On peut la dupliquer dans la pile, ce qui donne :
- 3 Enter Ï * 4 / DUP SIN SWAP / avec DUP et SWAP des opĂ©rateurs de pile pour dupliquer et intervertir.
- les calculs intermédiaires sont gérés sous forme de pile.
- parce qu'elle permet de voir les rĂ©sultats intermĂ©diaires, elle permet de dĂ©tecter plus facilement les erreurs et donc un dĂ©bogage plus rapide ; Ă lâĂ©poque des premiers circuits intĂ©grĂ©s, cela en diminuait la complexitĂ© (gestion d'une pile et d'opĂ©rateurs de pile).
- ni l'opérateur, ni les parenthÚses ne servant de séparateur, il faut en fournir entre deux opérandes successifs. Une espace devrait pouvoir suffire dans la majorité des cas ; sur une calculatrice, il s'agit de la touche Enter.
Quelques utilisations réelles de la NPI
- Le langage de programmation Forth
- Le langage de programmation RPL (Hewlett Packard)
- Le langage de programmation RPL/2[6]
- Les calculatrices scientifiques Hewlett-Packard, dont les HP-35, HP-41, HP-28, HP-48, HP-15C, HP-35s, HP-12c, etc.
- Le langage de description de pages PostScript
- Le programme calc[7], intégré dans Emacs
- Le tableur dâUnix, le programme dc
- LâĂ©criture dâinterprĂštes
- Le langage de description de format de bibliographie pour LaTeX et BibTex .bst[8] - [9].
- La création de graphiques complexes dans rrdtools[10].
- Le langage WarpScript, créé par Warp10 pour faciliter le traitement des Géo-Time Series (GTS)[11].
Notes et références
- (en) What is RPN?, sur le site hpmuseum.org, consulté le 19 mai 2013
- (en) Biographie de C.L.Hanblin, sur le site vukutu
- Charles Eric LaForest, « Second-Generation Stack Computer Architecture »
- The International Calculator Collector Winter 1997, Issue 19
- « Recherche, industrie, informatique : 1964, naissance de la Friden EC 130, un bijou électronique »
- Joël Bertrand, « Site officiel du langage RPL/2 Ÿ, langage de programmation fonctionnel impur dédié au calcul scientifique », (consulté le )
- calc, sur le site gnu.org
- Bibliography style (.bst) files, lire en particulier la section 16
- Notons que le package BibLaTeX de LaTeX propose une syntaxe plus simple que celle de bst pour modifier les styles.
- Page de manuel de rrdgraph
- (en) « WarpScript, a language designed for analytics of time-series data », sur Warp10 (consulté le )