Re: [stack] Concatenative versus Compositionality
"Christopher Diggins" <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
> Hi Chris, > > Yeah, this is true, but I don't see why we need to change the words. > The use of the term "concatenative" is fairly well-established within > our community, The problem is that the computer science community is much larger than our own. > and it's not unprecedented to have a term which does > not specify all of what the constituent words mean. Precedence does not make right. > To take an example > from the world of programming languages Which is the only kind of language I am concerned with :-) > (though the rest of English is > full of them), consider the term 'object-oriented'. A perfect example of what I am talking about. A term that was never well-defined, and because it was too broad (it means literally "about things") it got corrupted. Even members of the Scheme community have been known to call Scheme object-oriented. Very few languages don't consider themselves object-oriented. > Admittedly, this is not the most unambiguous term, > but few people *wouldn't* call Smalltalk > object-oriented. Edited as per your later email. > Yet Smalltalk programs do use objects: they > manipulate functions, lists, tuples and other types of stuff, or > objects. Except it is nearly impossible to define object precisely. > "Concatenative" itself doesn't explain what it means to be > concatenative, Yes. > but the definition is now basically accepted that a > concatenative language is one in which concatenation of two > independent programs. Within a very small community, and virtuallly no recognition from the academic community. > OK, so this isn't strictly true: we have to > define a program such that "1 [ 2" is not a program (since [ isn't a > program without a matching ]) and we have to account for side effects. > But the essence, in my mind, has been that a concatenative language is > one where programs are built from function composition, which is > probably indicated through some extremely light-weight syntax like > whitespace. > > Maybe "compositional" is a good way to explain concatenative > languages, but the switch of terms would leave "concatenative" without > a useful meaning. Referring only to syntax, it doesn't really define a > class of semantically-related programming languages. You are correct, it doesn't. Concatenative is a statement about syntax, not semantics. A syntactic classification of languages could still have use though. > The end effect > would be retiring the word "concatenative" in place of an equivalent > term, "compositional". I wouldn't jump to that conclusion yet. > I hate to get myself into these definitional debates. If the consensus > name is compositional, I will use that name to reduce ambiguity, but I > fail to see the purpose in the switch. On the other hand, > compositional is a word in my spell checker, unlike concatenative... > > Daniel Ehrenberg Cheers, Christopher