Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The 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.)



Not 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_b...



Sorry, I meant there is no benefit to using it in programming languages.


Forth 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.


> 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.


I 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: