views:

96

answers:

2

A long time ago, Rob Pike and Luca Cardelli wrote a paper called "Squeak: a language for communicating with mice". It was based on Hoare's communicating sequential processes, but it was compiled into single-threaded C code - no threads or scheduler at runtime. However, I can't find a compiler for Squeak, and Rob Pike went on to write newsqueak, which does have a nondeterministic scheduler at runtime, and so isn't what I want.

Esterel is also a language with a lot of support for concurrency, which can be compiled into single-threaded C code - but Esterel Technologies sells SCADE Studio for so much money, they won't even say how much it costs on their web page.

The Columbia Esterel Compiler is available. Are there other modern languages that compile "multi-threaded" algorithms into single-threaded, deterministic output?

Thanks.

+1  A: 

I'm not quite sure what you are asking. Are you looking for programming languages with deterministic concurrency models?

If so, the canonical example would be the Mozart Programming System, based on the Distributed Oz Programming Language.

Jörg W Mittag
Thanks - that's very helpful.
Johnicholas
A: 

Another implementation of Esterel, called Lustre is available upon request at http://www-verimag.imag.fr/SYNCHRONE/index.php?page=lv4-distrib

It asks for a signed license, but I just e-mailed Pascal Raymond and he sent me link to download the source code.

It works, but it takes a little patience getting it set up. Thinking about making an Automake script to do the job.

Diogenes