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
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.