[stack] Properties of Concatenative langauges and Forth
"Christopher Diggins" <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
In a concatenative language, I believe evaluation order should be unimportant.
For example:
f g h <=> (f g) h <=> f (g h)
Does Forth have this property?
Another property that I expect from a concatenative language is that
any subsequence of terms can be replaced with a subroutine whose
definition consists of that subsequence, without changing the meaning
of the program. I believe this follows from the description of Joy
that says that the syntax is a homomorphism to the semantics.
For example:
define sub { a b }
a b c a b <=> sub c sub
Does Forth have this property?
What about Enchilada?
FWIW: I like Steven Apter's informal definition a lot. Concatenative
means Joy-like. I am really worrying so much about definitions because
I am interested in trying to get at the heart of what makes Joy so
darn interesting from a theoretical stand-point, so that I can talk to
academics and say "see, Joy is not like your language!"
- Christopher