What are the differences with Blech from Bosch research?

21 views
Skip to first unread message

daniel....@gmail.com

unread,
Oct 21, 2020, 2:17:20 AM10/21/20
to The Programming Language Céu
Today I learned about Blech language from Bosch research, which looks very much like Ceu with a few changes (maybe closer to Esterel).  I didn't get any search hits in the Ceu mailing list or gitter channel, so thought I'd see if anyone had heard of it before.


Is anyone familiar enough with Blech vs Ceu to outline what their key differences are?  From my study so far,
  • Blech claims to be "causal" and that Ceu is "non-causal," which they explain in slide 17 of the keynote PDF in terms of Blech but I'm not sure how it shows up in Ceu.
  • The Blech transpiler is written in F# instead of Lua
  • There's no sense of linear time, just a sequence of "ticks" from a clock line
  • There are no events.  Communication requires reading input data, writing output data, and return values from stateful function ("activity") completion.
  • Perhaps some more control over data type functionality in Blech (slide 19)
Thanks all,
Dan

Francisco Sant'anna

unread,
Nov 10, 2020, 4:00:31 PM11/10/20
to ceu-...@googlegroups.com
On Wed, Oct 21, 2020 at 3:17 AM daniel....@gmail.com <daniel....@gmail.com> wrote:
Today I learned about Blech language from Bosch research, which looks very much like Ceu with a few changes (maybe closer to Esterel).  I didn't get any search hits in the Ceu mailing list or gitter channel, so thought I'd see if anyone had heard of it before.

It is a very interesting approach. I also believe it is closer to Esterel since it uses static analysis to schedule trails based on data dependencies.
One of the designers has contributed to some discussions in this group in the past.
 
Is anyone familiar enough with Blech vs Ceu to outline what their key differences are?  From my study so far,
  • Blech claims to be "causal" and that Ceu is "non-causal," which they explain in slide 17 of the keynote PDF in terms of Blech but I'm not sure how it shows up in Ceu.
Céu is deterministic based on lexical "non-causal" order instead of "causal" dependency between assignments in concurrent trails. 
  • The Blech transpiler is written in F# instead of Lua
  • There's no sense of linear time, just a sequence of "ticks" from a clock line
  • There are no events.  Communication requires reading input data, writing output data, and return values from stateful function ("activity") completion.
This also avoids a runtime stack which Céu requires due to events. They are very conservative about any kind of dynamic behavior given their target domain.
Reply all
Reply to author
Forward
0 new messages