Talk:RPL (programming language)
![]() | Computing C‑class Low‑importance | |||||||||
|
RPL acronym
Is Reverse Polish LISP truly a synonym for Reverse Polish Language, or is RP LISP a separate thing that uses the concept of RP Language within the context of the LISP language? If the latter, Reverse Polish LISP should have its own page and not be a redirect, or should have a separate paragraph within this article. -- Jeff Q 02:20, 3 May 2004 (UTC)
- Thanks for the comment; the article is now updated to reflect this. In fact the term Reverse Polish language is unheard-of, since it might just as well mean FORTH... --Wernher 03:18, 3 May 2004 (UTC)
- Thank you for clearing that up. I made a few minor changes to conform to standard English punctuation practices. Please revert if I have inadvertently changed the meaning of your excellent description. And thanks for providing this interesting article! -- Jeff Q 06:43, 3 May 2004 (UTC)
- I always heard (from many engineers) that RPL = "Reverse Polish Logic". Anyone else? Reverse Polish LISP and Reverse Polish Language make no sense in the context of a calculator. Tvaughan1 (talk) 00:45, 26 June 2009 (UTC)
- Actually RPL stands for Rom-based Procedural Language (source : HP journal) --Apc005 (talk) 18:31, 15 July 2009 (UTC)
- There is a definite controversy; I shall edit the article to reflect this. 98.225.16.76 (talk) 00:26, 27 May 2015 (UTC)
- There is no controversy. This is just made up. Over all those decades, RPL stood for "Reverse Polish Lisp" (but was used only as an acronym). This can be sourced in uncountable sources. The fact that a single source tried to be "smart" and invented the term "ROM-based procedural language" out of blue air does not change this a bit. While we should write from a neutral point of view, we also have a responsibility not to present and further spread false information or give undue weight to unimportant stuff, and we certainly have no obligation to pick the single source which got it wrong. "ROM-based procedural language" is a meaningless and misleading invention by someone who was obviously clueless about RPL's actual meaning, but who also must have been clueless about the technical background, as being ROM-based and being a procedural language are both common-place properties found in uncountable other languages as well and not describing anything special or important in RPL, whereas the properties, which stand out, being stack-based and object-oriented, don't get mentioned. "ROM-based procedural language" is as wrong as "Reverse Polish Logic" (mentioned further above) or "Rich People's Language" (as Bill Wickes suggested jokingly when asked about the actual meaning of the term RPL).
- For comparison: There are also people, who have no clue about the meaning of the term BIOS and call it "Binary operating system" or claim it to be derived from the Greek word for "life". If you search the net you will even find reliably looking references citing this. However, BIOS always stood and still stands for "Basic Input/Output System" (a term coined by Gary Kildall, nothing else, so we don't even mention some clueless people's guesswork in our BIOS article. Similarly, we shouldn't even mention "ROM-based procedural language" in our article about RPL, but if we do, not in any prominent way (as we do now). It's deliberately misleading. --Matthiaspaul (talk) 14:01, 12 August 2015 (UTC)
- There is a definite controversy; I shall edit the article to reflect this. 98.225.16.76 (talk) 00:26, 27 May 2015 (UTC)
Postfix conditional structures
There is a simple postfix-based way to implement if/then/else structures, which RPN purists would prefer.
The following example uses the IFT ("if-then") function to pop an object from the bottom of the stack, and if it is equal to 1, replace it with "One":
« 1 == "One" IFT »
The following example uses the IFTE ("if-then-else") function to pop an object from the bottom of the stack, and if it is equal to 1, replace it with "One", otherwise replace it with "Not one":
« 1 == "One" "Not" IFTE »
These structures can of course be nested. Both of the following examples pop an object from the bottom of the stack, and replace it with "One", "Less", or "More", depending on whether it is equal to, less than, or greater than 1.
« DUP 1 == « DROP "One" » « 1 < "Less" "More" IFTE » IFTE » « -> x « x 1 == "One" « x 1 < "Less" "More" IFTE » IFTE » »
Tony.
- I added a section for IFT/IFTE, using some of the content you've placed here. --MatthewMastracci 19:27, 12 May 2005 (UTC)
REALITY
The recently-added content about the REALITY Programming Language is a different subject altogether. It should be moved to a new article, and a disambiguation page created. Rwxrwxrwx 11:11, 10 July 2007 (UTC)
Four level stack?
"Contrary to previous HP RPN calculators, which had a fixed four-level stack, the stack used by RPL is only limited by available calculator RAM."
I have a 48gx and it is not stack limited. A quick test gave me more than 50 items in the stack. I assume it is limited only by memory.
I don't know if other RPN calculators are stack limited. Ponjo (talk) 01:01, 12 July 2008 (UTC)
- Since the 48 is an RPL calculator, what is your point? My 41 has a four level stack. Thyl Engelhardt 213.70.217.172 (talk) 08:36, 10 December 2008 (UTC)
Recursive functions etc
I just got a HP 50g yesterday, and this is my first 'advanced' calculator so I'm in heaven :) I think this article could discuss the actual features of rpl a bit more. If no one else does so, I'll add the stuff myself but I guess I should get a few months of experience first.
Some questions I'd like answered are: How to make recursive function calls? Can the compiler/interpreter transform tail recursion into simple loops? Are the types ordered in some kind of hirarchy or is the type space flat? Can one add new types (e.g. 'quaternions') and have them work with e.g the '+' function?
I'll find out soon enough, but as I said, the article could mention this. —Preceding unsigned comment added by 188.126.207.212 (talk) 04:26, 14 September 2009 (UTC)
general purposeness
If this is basically usable aas a general purpose language who's main availability happens to be calculator programming (as it appears on cursory glance it might, or might mostly), I (just little old me) think such should be 1 of the most obviouse aspects of the article itself. If not how far away is it from such, and in what way. My bias is great, here. I basically no nothing about computers, and thats the 1st thing I wanted to know and looked to the article to find. Slarty2 (talk) 23:36, 5 January 2011 (UTC)
RPL syntax highlighting is missing
It needs it (though it is mainly use case). Daemonicky (talk) 12:42, 31 August 2011 (UTC)
Change << to « by MatthewMastracci
[1] is correct? Could somebody provide a source that guillemets (namely, U+00AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK and U+00BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK) have such syntactic meaning in this language? Incnis Mrsi (talk) 08:45, 19 July 2012 (UTC)
Variants: wrong and overblown
In Variants: the language is overblown. Serious crash? Who dies from it? It's just a calculator. Reset it and move on.
As far as System RPL only being available via external tools, this certainly does not apply to the 50g. The HP doc (Advanced User Guide) explains how to code in Sys RPL and even ARM assembly with onboard tools that come preloaded from the factory. I don't know how far back this goes, but I believe Sys RPL was available natively on the 48 series as well. Someone who knows definitely should fix this all at once.87.68.23.11 (talk) 08:02, 4 December 2013 (UTC)
Lisp?
And what's the relation to Lisp? The resemblance of RPL to FORTH is obvious, one could even argue that it is a FORTH system (and if not, it should be explained why not and what the differences are), but Lisp? Where are the lists, Symbols, Macros? How are functions defined and as argument given to other functions? Or was the name in the end just a marketing-stunt?