Hacker News new | ask | show | jobs
by spott 1 day ago
Forth I assume uses reverse polish notation: arguments before the operator.

3 4 +

for example, would return 7.

2 comments

> would return 7

more pedantically, it would push 7 onto the stack

even more pedantically, would remove 3 and 4 from the stack before pushing 7
Even oddly more pedantically, that's the operand stack, not to be confused with the separate return stack. >R and R> move values between the two stacks.

On the other hand, PostScript also has a dictionary stack, which you can use to implement a Smalltalk-like object oriented programming system. And its data types and executable code are basically polymorphic homoiconic JSON (like Lisp), not raw untyped bytes like FORTH.

https://news.ycombinator.com/item?id=22456471

https://news.ycombinator.com/item?id=47812317

The stack is really a convenience that makes pipeline-driven programming possible in the language.
somewhat relatedly, shell pipelining is very amenable to being massaged into (non stack-based) concatenative programming