6 ms·
Reverse Polish Notation - sounds like the punch line to a really bad math joke
by rarw 13y ago
Reverse Polish Notation - sounds like the punch line to a really bad math joke
- revelation 13y agoThe joke has been going on for quite some time now - Lisp and related languages use Polish Notation everywhere. (The main benefit is that (R)PN is parenthesis-free, so it makes it easier for a calculator to process expressions with multiple operators. The use in programming languages is nonexistent but to make clear that +, *, .. are just like any other function call, where you would naturally use polish notation.)
- Scaevolus 13y agoNot nonexistent-- there are many stack-oriented programming languages[1], of which Forth is the most famous. There's even a "Reverse Polish Lisp" on HP calculators! [1] http://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Stack-based_languages http://en.wikipedia.org/wiki/List_of_programming_languages_b...
- revelation 13y agoSorry, I meant there is no benefit to using it in programming languages.
- Scaevolus 13y agoForth is arguably the best language in terms of expressive power/language complexity, though that's largely due to the denominator. It's a great choice for tightly constrained devices, though far fewer devices have such constraints now. The mental overhead of having to track stack-effects for each function makes it difficult to scale to large systems and maintain productivity, but if you're trying to eke every iota of power out of a chip with a tiny amount of ROM, it's hard to beat a direct-threaded (or token-threaded...) Forth.
- nealabq 13y agoSee also http://en.wikipedia.org/wiki/Reverse_Polish_notation#Current_implementations http://en.wikipedia.org/wiki/Reverse_Polish_notation#Current...
- deleted 13y ago[deleted]
- orclev 13y ago> Lisp and related languages use Polish Notation everywhere. > The main benefit is that (R)PN is parenthesis-free ... so what you're saying is Lisp has all those parenthesis just to troll us? Seriously though, using PN can make implementing parsers a lot simpler as it makes the grammar less ambiguous.
- anaphor 13y agoI don't know about less ambiguous, it can still require only single token lookahead and be context-free without any parentheses, but Lisp-ish languages are easier to parse because you have fewer productions to worry about compared to more complex languages.
- eli 13y agoAllegedly the name "Polish Notation" stuck because nobody could pronounce its inventor's name: Jan Łukasiewicz
- rarw 13y agoPoor guy. I wonder how many light bulbs he had to screw in before people learned his name.
- wowaname 13y agoI'm gonna make a wallpaper right now with his name on it.
- roryokane 13y agoThe correct pronunication is “John Wookuh-shev-eetch”, according to my decoding of the IPA notation [ˈjan wukaˈɕɛvʲitʂ] from Wikipedia (http://en.wikipedia.org/wiki/Jan_%C5%81ukasiewicz http://en.wikipedia.org/wiki/Jan_%C5%81ukasiewicz) using Wikipedia’s help page http://en.wikipedia.org/wiki/Help:IPA_for_Polish http://en.wikipedia.org/wiki/Help:IPA_for_Polish.
- Demagog 13y agoRather Ian with harder/stronger I than John. Well Polish it is not that hard. It's only second hardest language on the world (China I look at you) If it is hard for you. Well try to spell this thing correctly "Zażółć żółtą jaźń" or "Chrząszcz brzmi w trzcinie" Sorry for OT. All thing look really amaizing. I'd love to see more in this topic.
- nealabq 13y agoAfter I got used to RPN (I had a lovely old HP-21) I found it much more intuitive. Stack-based thinking. No parentheses! (And I've used LISP for years, but that's entirely different.) RPN vs Infix/Algebraic used to be a holy-war topic. Like emacs vs vi, or iPhone vs Android. Once you go RPN, you can never go back again.
- pavel_lishin 13y agoI learned it for some scholastic competition once. You're right, after the initial confusion, it was fast and intuitive. I've forgotten it all now, of course. How often do I need to calculate something?
- TheLoneWolfling 13y agoThe one issue I've already had with RPN is that you require a separator between numbers anyways - in RPN it's too easy to parse "23 4 +" as "2 34 +", for example, especially if you're writing quickly.
- orclev 13y agoMight have been better to demonstrate that using subtraction as addition is commutative and thus either one works fine in this case.
- anonymouz 13y agoOn the HP calculators the separator would usually be the enter key. I think the old ones displayed just the top entry of the stack, on the newer ones with bigger display you see the stack with each entry on one line.