Are RPN Calculators dead and buried? R U Happy or sad?

RPN - Reverse Polack was the bane of my college life. (actually it was Reverse Polish notation) and cost me a very rare C in Data Structures (a Computer Science class) and it hurt me in other classes too.

I never could grasp the demented logic of RPN notation.

Are RPN calculators truly dead and gone? Can we dance on their grave?

I know there were people that love RPN logic. Are they still buying RPN calculators?

I love RPN. I don’t have to buy a new calculator, because the HP 11C I purchased in 1987 still works great.

I have, however, installed RPN calculator apps on my phone and tablet computer.

ETA: a quick Google search reveals there are many current models of RPN calculators available.

The only calculator that I have now is on my phone and it’s standard entry. When I was an engineering student, I preferred RPN. I found it to be more intuitive and faster once I got accustomed to it which didn’t take very long.

I just did a search and you can still buy them.

It’s not demented; it’s just different from what you’re used to.

Actually, you’re probably quite used to Forward Polish Notation for most things; e.g., normally, you’d write functionName(input1, input2, input3, …) to apply a function to some inputs. Ignoring the unnecessary parentheses and commas, this is Polish notation.

Reverse Polish notation is just what you get if you write the function name after the inputs, rather than before them.

Why do they call it reverse Polish notation?

For the kiddies that missed out.

an example of RPN expressions
http://www.seas.gwu.edu/~csci133/fall04/rpn-fig3.jpg

The article. Makes no more sense to me today than it did in 1984. My poor, poor GPA really took a hit thanks to RPN. Several of my CS classes used it.
http://www.seas.gwu.edu/~csci133/fall04/133f04toRPN.html

Because it’s the reverse of Polish notation [in Polish notation (which we’re all quite accustomed to in general, though we stick in superfluous parentheses and commas, and switch ad hoc to a different syntax for things like addition and multiplication), function names come before their arguments; in reverse Polish notation, function names come after their arguments].

Polish notation, in turn, is called that because it is attributed to the Polish logician Jan Łukasiewicz.

In fact, the venerable Hewlett-Packard RPN models 12C and 15C are still available.

I’m not surprised. Some people I knew in college loved RPN.

It was one of those concepts people grasped quickly or struggled with like I did.

Handheld calculators in general are dead. Phones now serve that purpose.

I use an HP48 emulator on my phone just about every day. So RPN isn’t quite dead yet, for me.

I also have a real HP48 GX that functions as well as it ever did, though it’s been a while since I used it.

RPN was one of those fantastic things that I grokked instantly: it perfectly fit my mental model of how a computation progresses. I borrowed a friend’s in high school, figured it out within an hour, and bought my own within the week.

You can see why – RPN expressions are the most easy for computers to implement. To parse a “normal human” expression, you need a bunch of rules about parentheses and precedence. To parse RPN, you just need a stack and two rules to parse from left to right:

[ol]
[li]If you encounter a number, push it onto the stack.[/li][li]If you encounter an operation, pop two numbers off the stack, apply the operation, and push the result onto the stack.[/li][/ol]

Back in the day, computers weren’t as “meet the humans halfway” as they are now, so you ended up doing what was easiest for the computer.

I’m surprised scientific calculators are considered obsolete or dead. There’s so many specialized buttons on them.

I find it so cumbersome trying to use a mouse on a pc based calculator. They are fine for entering a simple equation. But I reach for my calculator when I have anything very long.

I miss my 28s, that calculator seriously rocked. That said, the 48s emulator on my android phone is great and RPN is the way to go. I will say that if I am sitting in front of my computer I will just use MatLab.

It’s just a stack. If you don’t get that then you probably deserved a C in data structures. :slight_smile:

Like I said, I use an HP48 app on my phone. It is just as functional and as easy to use as the original. It’s even quite a bit faster. The only minor downside is the lack of tactile response on the buttons, but I’ve pretty much gotten used to that for other reasons.

For more serious math I use a real computer math program, like Octave. Sometimes Wolfram Alpha does reasonably. The paid version on Android is handy because it includes a specialized keyboard (with integral symbols, etc.).

To the OP and perhaps others, it may be useful to consider this:

Even humans essentially turn expressions into RPN when they go about evaluating them.

Consider the expression ((5 + 8) * 9 + (53 + 19)/(4 * 6))/8. Go ahead and calculate the result by hand. How did you go about doing so?

Well, you probably did something like this:
First, you took 5 and 8, and added them, to get an intermediate result; let’s call it X.
Then you took X and 9, and multiplied them, to get an intermediate result; let’s call it Y.
Then you took 53 and 19, and added them, to get an intermediate result; let’s call it Z.
Then you took 4 and 6, and multiplied them, to get an intermediate result; let’s call it A.
Then you took Z and A, and divided, to get an intermediate result; let’s call it B.
Then you took Y and B, and added them, to get an intermediate result; let’s call it C.
Finally, you took C and 8 and divided, to end up with the final result for the overall expression.

Which is exactly the series of instructions the RPN translation of the expression amounts to [well, except for the cleverness in RPN of not bothering to name or explicitly refer to the intermediate results]. If you just read off every argument and operation above, except for the names of the intermediate results, you’ll get:

5, 8, add, 9, multiply, 53, 19, add, 4, 6, multiply, divide, add, 8, divide.

So RPN is what you’re doing already*; you just might not be paying attention to it.

[*: Unless you have a bunch of friends willing to help you work out different parts of an expression in parallel… Then serialization is a red herring, and there’s no substitute for the expression tree itself, in all its nonlinearly structured glory]

I couldn’t find a simple example on google. Just so the newbies can understand the topic.

Lets try this one 2((8 + 9/3) * (40/8))

yeah, we can do it in our head. 110 But play along.

Someone care to show it in RPN?

2
<enter> ;push on stack
8
<enter> ;push on stack
9
<enter> ;push on stack
3
/ ;=3

  •         ;=11
    
  •         ;=22
    

40
<enter> ;push on stack
8
/ ;=5

  •          ;=110

aceplace57, suppose we wrote Add(x, y) instead of x + y, Mult(x, y) instead of x * y, etc., in the same way that we talk about all the functions that we haven’t bothered to make up special symbols for.

Do you think you could write “2((8 + 9/3) * (40/8))” in that syntax?

2, 8, 9, 3, divide, add, multiply, 40, 8, divide, multiply