[stack] the concatenative wikipedia article

John Nowak <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
The Wikipedia article on concatenative languages has a number of  
issues that I think should be addressed. I'm willing to make the  
changes, but I'd like to make sure I'm not off-base first.

I realize many of these concerns are rather tired at this point. I  
apologize. However, that doesn't change the fact that they've gone  
unresolved. Indeed, there seems to be almost a resistance to resolving  
them. I personally think that the non-applicative style of programming  
has important properties and that it would be great to have a term for  
them so I could stop redefining "concatenative" every time I talk to  
someone (including those knowledgeable about concatenative languages).

Here are my issues with the article:

1. Concatenative should not be conflated with "stack-based". I have  
already shown that the counter-examples are beyond mere curiosities.

2. It should be more clearly stressed that concatenative languages are  
not applicative. The reduction of a concatenative expression is the  
simplification of one function to another function (e.g. '1 2 + + ==>  
3 +'). Never is it necessary to deal with objects or application, and  
much is gained by not doing so (as is mentioned at http://www.latrobe.edu.au/philosophy/phimvt/joy/j08cnt.htm) 
.

3. There is no reason concatenative languages must use a postfix  
syntax. A prefix syntax is also a valid approach. Other syntaxes are  
useful (as I've shown recently with my infix construction syntax  
similar to that of in FL and J) but ruled out by the need for  
concatenation to always denote composition (which I think is probably  
unfortunate).

4. Not all concatenative languages have parsing words or an equivalent  
to macros. Talking about them here makes as much sense as talking  
about macros on a page about applicative programming.

5. It should be stressed that concatenative languages are function- 
level and pointfree. They also go beyond languages like Backus's FP in  
that objects are entirely removed from the language; The expression  
'3' represents a *function*, not an object.

6. I dislike the sentence "The term 'concatenative' is not universally  
accepted as a particularly useful term". It's an objectively useful  
term if some care is given to its definition; What's "universally  
accepted" is unimportant. Hell, even Slava (who says it's unimportant)  
has started concatenative.org (which lists C++ and Java as  
"interesting languages"... ugh).

So, should I make the changes or should I just define a new term so I  
that can communicate with people without boring myself? I did like  
Diggins's "compositional" suggestion which is more to the point; The  
fact that it is already used in various vague ways doesn't disturb me  
too much.

Sorry for bringing this up *again*, but I'm trying to write a paper  
and keep stumbling over how to describe what it is that I'm talking  
about.

- John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.