HP-71B: le chainon manquant entre RPN et RPL [long]

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2498
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

HP-71B: le chainon manquant entre RPN et RPL [long]

Message par zpalm » 19 janv. 2011 01:10

Un peu d'Histoire.

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
Quel parcours !! Pionnier de la programmation synthétique sur HP-41C il fut embauché par HP et est à l’origine du RPL. A noter la ROM HP-41 Translator, développée comme passe-temps (!!!) et qui fut ensuite commercialisée par HP .

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.
On voit donc que ce n’est pas seulement Bill Wickes mais toute l’équipe de développement des ROMs du HP-71B qui a ensuite développé le RPL. L’expérience acquise sur le FORTH du HP-71B a visiblement été un facteur déterminant dans le développement du RPL. Bill Wickes s’en est servi pour développer la ROM 41 translator, et l’on peut raisonnablement penser que ce sont ces développements autour du Forth sur HP-71B qui ont permis à Bill Wickes et à son équipe de concevoir le RPL de la 28C.

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."
Ceci étant pourquoi HP a-t-il développé cette ROM Forth/Assembler, avec un nouveau language pour le HP-71B qui avait déjà un BASIC plutôt puissant, et ceci dès la conception du HP-71B?
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

Avatar de l’utilisateur
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4594
Inscription : 31 oct. 2006 16:08
Localisation : 67310 Westhoffen
Contact :

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par pir2 » 19 janv. 2011 09:32

Whaou, merci pour cet article (pas tout lu, mais là, je vais sacrifier un peu d'encre et une feuille de papier pour l'imprimer) :)
Image
Image

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par jvernet » 19 janv. 2011 09:56

a mettre dans le wiki sur le 71b !
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2498
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par zpalm » 19 janv. 2011 13:54

jvernet a écrit :a mettre dans le wiki sur le 71b !
C'est fait :)

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1428
Inscription : 27 oct. 2010 20:46

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par Gilles59 » 20 janv. 2011 01:31

Super ! Merci pour ces infos...

La calcu idéale pour moi ? Une HP51 avec un meilleur écran (320x200), un code réécrit en full ARM (suppression de la couche d'émulation SATURN), et une évolution RPL3. J'ajoute plus de compacité et plus d'autonomie
...
Mais je n'y crois pas trop car elle serait commercialement trop proche de la 50 et le marché ne justifie certainement pas l'investissement et que le seul but des multinationale est de payer des dividendes aux actionnaires. Je me réjouis déjà que la 50 qui corrige les défauts des 49 soit sorti et n'espere plus grand chose dans le genre pour l'avenir
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2498
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par zpalm » 19 déc. 2011 10:46

En complément de ce qui précède, j’ai retrouvé, OCRisé et remis en forme un article de Bill Wickes publié en Janvier 1985 dans les revues CHHU Chronicle et PPC Journal: THE HP-41 TRANSLATOR PAC FOR THE HP-71.

Cet article – sous-titré fort à propos "Bridging the gap" - est intéressant à plusieurs titres : tout d’abord c’est une présentation détaillée du module HP-41 Translator par son développeur qui explique sa structure et son fonctionnement. Je reste admiratif du travail réalisé par Bill Wickes sur le " HP-41 Translator ROM, which [he] wrote [him]self as a after-hours project " .[1]

Ensuite cet article, par sa date de publication, se situe au moment de la finalisation de l’OS de la 28C qui fut la première machine RPL (avec la 18C) :
  • " 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. " [2]

On y voit que le HP-41 Translator pour le HP-71 marque une étape sur le chemin intellectuel qui a conduit du RPN au RPL, avec en particulier l’introduction de la ligne de commande :
  • " The HP-41 is strictly a key-per-function calculator. HP-71 FORTH and BASIC both use a command line approach instead […]
    The HP-41 translator allows you to use either method. The default mode is command lines. You can type in up to 96 characters of functions or numbers together, each entry separated by a space, then press [ENDLINE] to execute the whole sequence. […]
    But if you prefer key-per-function operation, you can make the built-in file KEYS41 the active keys file, so that in user mode, any HP-41 function can be immediate execute."
les changements dans la gestion de la pile avec la disparition du « Stack Lift Disable » , (une fonctionalité du RPN qui a fait beaucoup parler ici-même):
  • " The HP-41 Translator makes a bold break with tradition (here’s how you make a possible drawback into a feature) by not implementing any stack lift disable. Yes, that’s right, the ENTER^ key becomes a vestigial organ not worth including in the built-in keys file."
ainsi que l’influence du language FORTH que l’on retrouvera dans le RPL, en particulier le sysRPL:
  • " FORTH is a logical “next language” for HP-41 user language aficionados."
Je vous laisse lire l’argumentaire détaillé de ces changements par rapport à la HP-41, je terminerai juste par une dernière citation symptomatique de l’état d’esprit de Bill Wickes, qui préfigure bien à mon avis la rupture du RPL avec le RPN traditionnel:
  • " But here the HP-35 designers overshot the mark—instead of just having ENTER^ terminate digit entry, they (who knows why?) made it also carry out the unrelated task of duplicating the number into the Y-register, then disabling stack lift. [..]
    The HP-41 translator does what the HP-35 and its descendants should have done: it has a special key (in this case the [SPC] key) that has no role in lift except to terminate digit entry (or to separate commands)."

[1] Extrait de "HP28 Source, SYSEVAL's and Wickes", post de décembre 1989 sur comp.sys.handhelds
[2] 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.
Dernière édition par zpalm le 20 mars 2017 11:35, édité 1 fois.

Avatar de l’utilisateur
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3397
Inscription : 06 sept. 2011 14:57
Localisation : Normandie

Re: HP-71B: le chainon manquant entre RPN et RPL [long]

Message par Hobiecat » 21 déc. 2011 22:54

Merci, c'est toujours intéressant de voir le cheminement qui a amené les ingénieurs HP à concevoir les languages et machines que nous connaissons !
J'aime bien le "after hours project" !!

Répondre

Revenir vers « Tous les Pockets »