[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