Search code examples
concurrencyactorconcatenative-languagefactor-lang

Concatenative languages and concurrency - is there a difficulty in principle?


Is there a principle issue with concurrency in concatenative languages, or is it simply just missing?

Or am I just missing something?

As far as I know, currently, the most advanced concatenative language is Factor and it still only has a co-operative threading system that doesn't use multiple cores.

Perhaps Slava Pestiv, Factor's inventor, has been consumed by Google so much that it he simply didn't find the time to create a multicore version.

As far as I understand, an actor model should be very fitting for a concatenative language. However, this is a rather difficult area. Any idea what kind of model would work well?


Solution

  • You can think of the 144 cores of the GreenArrays chip as "actors" using message passing between cores. In practice this is exactly how the chip is used; a single problem is broken into small, communicating pieces running concurrently. These are each programmed in Forth which can be thought of as a concatenative language.