Un article de Wikipédia, l'encyclopédie libre.
HP-48G utilisant le langage RPL.

Le RPL (de l'anglais Reverse Polish Lisp selon ceux qui l'ont développé[1],[2],[3],[4],[5],[6],[7],[8],[9]) est un langage de programmation procédural inventé par HP en 1984[2] pour ses calculatrices (HP-28, HP-48, HP-49 (en), HP-50g).

Origine du nom[modifier | modifier le code]

Il dérive des langages Forth (langage pour machines de 4e génération) et Lisp, dont le nom signifie « LISt Processor »[10],[11],[12]. Le RPL utilise la notation polonaise inverse.

Fonctionnement[modifier | modifier le code]

Ce langage utilise une pile et est pourvu des instructions classiques de boucles et tests. Il intègre également des commandes pour le traitement des listes.

Notes et références[modifier | modifier le code]

  1. (en) William C. Wickes, RPL : A Mathematical Control Language, Rochester, New York, USA, Institute for Applied Forth Research, Inc., , 27-32 p.

    « Several existing operating systems and languages were considered, but none could meet all of the design objectives. A new system was therefore developed, which merges the threaded interpretation of Forth with the functional approach of Lisp. The resulting operating system, known unofficially as RPL (for Reverse-Polish Lisp), made its first public appearance in June of 1986 in the HP-18C Business Consultant calculator. »

  2. a et b William C. Wickes, « RPL stands for Reverse Polish Lisp », www.hpcalc.org, (consulté le ) : « RPL stands for Reverse Polish Lisp. In the early days of RPL development, we got tired of calling the unnamed system "the new system", and one of the development team came up with "RPL", both as a play on "RPN" which has been the loved/hated hallmark of HP calcs forever, and as an accurate indication of the derivation of the language from Forth and Lisp.
    RPL was never particularly intended to be a public term; at the time of the HP Journal article (August 1987) on the HP 28C there was an attempt to create a less whimsical name--hence "ROM-based procedural language," which preserved the initials but had a more dignified sound. The development team never calls it anything but (the initials) RPL. You can choose either of the two full-word versions that you prefer. Or how about "Rich People's Language?" Bill Wickes, HP Corvallis. »
  3. André Schoorl, « HP48 Frequently Asked Questions List », HP Calculator Archive, (consulté le ), p. 69
  4. (en) « I've heard the names RPL, Saturn, STAR, GL, etc. What are they? - RPL », FAQ: 2 of 4 - Hardware, Programs, and Programming, comp.sys.hp48, (consulté le )
  5. Richard J. Nelson, « HP RPN Evolves », HP Solve, Hewlett-Packard, no 27,‎ , p. 30-32 (lire en ligne, consulté le )
  6. (en) Włodek A. C. Mier-Jedrzejowicz, A Guide to HP Handheld Calculators and Computers, HHC 2011, , 5e éd. (ISBN 978-1-888840-30-8)

    « RPL stands for Reverse Polish Lisp - it combined the RPN calculator language of earlier models with features of the Lisp and Forth programming languages. For a time HP explained the letters RPL as an acronym for "ROM-based Procedural Language". »

  7. whilst for a short while in 1987 HP marketing attempted to coin the backronym ROM-based Procedural Language for it
  8. (en) Charles M. Patton, « Computation for Handheld Calculators », Hewlett-Packard Journal, Palo Alto, California, USA, Hewlett-Packard Company, vol. 38, no 8,‎ , p. 21–25 (lire en ligne [PDF], consulté le )
  9. « HP Celebrates 35 Years of Handheld Calculator Innovation » [archive du ], Hewlett-Packard Development Company, L.P., (consulté le ) : « 1987: HP-28C: First full RPL calculator: In the late 1980s, HP developed a new programming language for its new series of extremely powerful calculators. By combing elements of RPN, Lisp and Forth, HP came up with a language called RPL (or ROM-based Procedural Language). »
  10. (en) Hewlett-Packard, « RPLMan from Goodies Disk 4 » [RPLMAN.ZIP] (consulté le )
  11. (en) Joe K. Horn, « RPL.DOC » (consulté le )
  12. JPC no 41 - page 14, "Le HP-28 par son père" traduction d'un article de Hewlett-Packard

Liens externes[modifier | modifier le code]