J’ai réalisé récemment que le HP-71B, un pocket BASIC, a joué un role important dans la genèse du RPL et la transition entre la HP-41C, aboutissement des calculatrices programmables RPN, et la HP-28C, première calculatrice graphique et symbolique RPL, début d’une longue série, de la 28S à la famille HP-48 et jusqu’à la HP-50G actuelle.
L’un des créateurs du RPL a été Bill Wickes, chef de projet software sur les HP-28 & 48, mais laissons-le se présenter lui-même:
- "First of all, for those gentle readers who don't know who I am, I was the software project manager for the HP-28C/S. Since coming to HP in 1981, I have directed the following projects: HP-41 Extended I/O ROM, HP-75 I/O ROM, HP-71 Math and Forth/Assembler ROM (also the HP-41 Translator ROM, which I wrote myself as a after-hours project), and the RPL operating system, which underlies all current HP calculators with 2 or more display lines. In 1980, while an assistant prof of physics at U. of Maryland, I wrote Synthetic Programming on the HP-41C, which gave my name a lot of exposure in the calculator user community, and led to my current employment. "
Extrait de "HP28 Source, SYSEVAL's and Wickes", post de décembre 1989 sur comp.sys.handhelds
On voit apparaitre entre le RPN de la 41 et le RPL de la 28, les ROMs Math & Forth/Assembler du HP-71B. L’influence de ces développements sur la création du RPL est expliquée plus en détail par Bill Wickes dans un article paru lors de l’introduction de la HP-28C (un peu long mais très instructif):
- "BEGINNINGS
The HP- 28C project had its origins about 2-1/2 years ago, as the HP-71 application ROM projects were winding down. At that time, the team that had produced the 71 Math and FORTH/Assembler ROMs turned their attention to designing a calculator operating system. We were convinced that the next generation of calculators should support symbolic mathematics-- the ability to use calculator operations on quantities represented by symbols that don’t first have to be converted to numbers.
After some study, it became clear that the HP 71 and the HP 41C operating systems and user languages are unsuited for this purpose, because of their lack of any method of applying functions to unevaluated expressions (programs). Likewise, PC-based systems and languages that support symbolic math are too profligate of ROM and RAM to be practical for a handheld.
In the end, we began developing a new operating system customized for our requirements. This development was completed about a year later, and we turned our attention to the implementation of a symbolic math calculator. Meanwhile, the HP-18C project had begun a parallel development, and became the first product based upon our new operating system. It uses the same internal language and execution logic as the HP-28C, even though its external user interface is quite different. Although the 18C does not provide any symbolic math capability directly to the user, the Solver does perform some rudimentary symbolic manipulations as part of its "direct" solve.
The new operating system and language is based upon a combination of FORTH and LISP and is known informally at HP as "RPL" (for Reverse-Polish LISP). Although FORTH’s rigid memory management and utter lack of user protection make it unsuitable as a calculator language, it happens that its threaded interpretation logic and unlimited data and return stacks are ideal for manipulation and evaluation of symbolic expressions. RPL execution is based on a generalization of the FORTH "inner loop." (in fact, the bit-bangers among you may be interested to know that the Saturn CPU in the new products has a new opcode. PC=(A), to optimize threaded execution)
LISP is the traditional language used for implementation of computer symbolic math. RPL borrow heavily from LISP, particularly in its implementation of list manipulations and lambda variables (local variables in the HP-28C terminology).
The basic user interface of the HP-28C was laid out in a 3-day team meeting that took place in January, 1985, as the operating system development was in its final stages. Formal work on the HP- 28C firmware was begun in May, and completed in June 1986. "
Extrait de "The HP-28C: AN INSIDER'S PERSPECTIVE - William C. Wickes, HP-28C Project Manager" , paru entre autres dans la revue HPX Exchange V1N1 de Janvier/Février 1987, dispo sur hp41.org.
Les liens entre FORTH et RPL sont présentés avec un peu plus de détails dans "RPL, FORTH, & LISP: A History", post de novembre 1994 sur comp.sys.hp48 :
- "Visible artifacts of RPL's roots in FORTH are plentiful in the names of the stack operations: SWAP, DROP, OVER, ROT, ROLL, PICK, DEPTH, and DUP mean the same thing in FORTH as they do in RPL, and notice that none of these names were ever used in traditional HP RPN. FORTH also has 2DUP and 2DROP, which is what DUP2 and DROP2 are called in System RPL. FORTH and System RPL both use ! to mean store, @ to mean recall, ' to push an object's address, ; to end a program (FORTH uses : to start a program; SRPL uses ::), ABORT, EXIT, DO/LOOP, CASE, BEGIN/UNTIL, WHILE/REPEAT, PAD, CONTEXT, CREATE, SUB$, POS, NULL$ ... you get the idea."
On trouve les raisons du développement de cette ROM FORTH/Assembler dans le HP Journal de Juin 1984, page 37 :
- "Design Objectives
The development project that produced the HP-71B's FORTH/Assembler Pac had four objectives:
o To provide an on-board applications development environment that would attract and encourage independent software vendors to write software for the HP-71B, or port their existing software to it
o To encourage volume end users to use the HP-71B for their custom applications
o To provide an alternative language that would run faster than BASIC and would provide users with more access to the internal architecture of the machine
o To allow technically adept users to customize their HP-71B.
Why FORTH ?
The language/operating system that was finally chosen to satisfy the design objectives was FORTH, a threaded interpretive language which was developed by Charles Moore for instrument control at the Kitt Peak National Observatory. It has since become very popular for controller applications and is gaining in popularity as an application language for portable and handheld computers.
[…] One of the traditional uses of FORTH is in controller applications. HP-71B FORTH provides this capability in conjunction with the HP-71B's HP-IL module.
[…] Luckily at this time during the project, the BASIC operating system code had not yet been released and the operating system software design team was persuaded to modify the module configuration algorithm to accomodate the needs of FORTH[...]"
Le RPL a donc une partie de ses origines dans les applications de contrôle d'instruments du HP-71B et le language FORTH développé pour celles-ci, en parallèle et en complément du BASIC orienté lui vers les applications mathématiques.
Sans la ROM Forth/Assembler du HP-71B le RPL n'aurait sans doute pas existé, ou comment le contrôle des instruments de l'Observatoire de Kitt Peak a eu une influence déterminante sur les calculatrices HP.
Si FORTH et LISP ont pu représenter dans les années 80, compte tenu des limitations de la technologie, une excellente base pour l’OS d’une calculatrice symbolique, on peut se demander aujourd’hui, avec l’évolution des processeurs et des capacités mémoire, quel serait l‘OS idéal pour une nouvelle calculatrice qui remplacerait la HP-50G?
Références:
- "What does "RPL" stand for... ", Bill Wickes, 1991, Rpl.txt dans le HP 48 Goodies Disk, Vol. 3
- "HP28 Source, SYSEVAL's and Wickes", Bill Wickes, 4 décembre 1989, comp.sys.handhelds
- "RPL, FORTH, & LISP: A History", Joseph K. Horn, 4 novembre 1994, comp.sys.hp48
- "Plug-In Module Adds FORTH Language and Assembler to a Handheld Computer, by Robert M. Miller" dans le HP Journal de Juin 1984 consacré au HP-71B.
- "The HP-28C: AN INSIDER'S PERSPECTIVE - William C. Wickes, HP-28C Project Manager" , paru entre autres dans la revue HPX Exchange V1N1 de Janvier/Février 1987, dispo sur hp41.org.
- Voir aussi la présentation détaillée de la HP-28C dans le HP Journal d'Août 1987 qui lui est consacré (avec la 18C), et en particulier les articles "An Evolutionary RPN Calculator for Technical Professionals, by William C. Wickes" et "Symbolic Computation for Handheld Calculators by Charles M. Patton".
- "It All Adds Up" un article de Measure, magazine des employés HP (July-August 1991, page 18) sur Bill Wickes, disponible aussi au format texte ICI