16

What exact role do higher-order combinators (or function producers) hold in concatenative and tacit programming?

Is there another way to implement a concatenative programming language rather than directly manipulating the stack?

How tight is the relation between the combinators mentioned and Schonfinkel's combinatory logic?

Peter Mortensen
31.5k22 gold badges110 silver badges134 bronze badges
asked May 8, 2010 at 4:36
1

2 Answers 2

11

Is there another way to implement a concatenative programming language rather than directly manipulating the stack?

Yes. The Enchilada language is based on term rewriting.

Peter Mortensen
31.5k22 gold badges110 silver badges134 bronze badges
answered Oct 24, 2010 at 21:06
Sign up to request clarification or add additional context in comments.

2 Comments

+1, although their definition "Concatenative: the syntactic concatenation of postfix expressions, yields valid expressions" is just the sort of offbeat idea that Norman complains about in his answer.
Yeah, I think everyone involved in "concatenative" languages kind of makes up the definition for themselves. The geenral "feel" of the languages are the same though, so I won't worry about it :)
-3

In my answer to "Explain Concatenative languages to me like I’m an 8 year old" I argued that it is not useful to use the word "concatenative" to describe programming languages. This area appears to be a private playground for Manfred von Thun. There is no real definition of what constitutes a concatenative language, and there is no mature theory underlying the idea of a concatenative language. Because the concept is not really defined, it is impossible to provide a definitive explanation of the role of combinators.

You might prefer to spend your time studying more well-established topics such as combinatory logic, SK combinators, lambda calculus, and graph-reduction machines. If you are interested in point-free programming from a more pragmatic perspective, APL, Forth, and PostScript are all well worth studying.

answered May 8, 2010 at 20:33

4 Comments

Thanks, I've read the post mentioned and will surely investigate in the topics you denoted
I think that you go too far when you say it is not useful to use the word "concatenative" to describe programming languages - it is rather an unclear but useful concept, one that becomes incoherent when you push it too far, an instance of the family-resemblance concepts like "game" that Wittgenstein criticised. And if they are a playground for Manfred von Thun, they are not private: I found Christopher Diggins' work on Cat interesting.
A response to this answer can be found here: evincarofautumn.blogspot.com/2012/02/… Why Concatenative Programming Matters
I hate seeing this as the accepted answer. It's wrong. Being concatenative is having the property that you can chop a part of it and it's a valid program, and join programs and get another program. So simple it doesn't need much explaining, really. There are other things to concatenative programming languages, but that's the defining feature. It also fails at answering any of OP's questions.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.