
Céu: Structured Synchronous Reactive Programming - flippyhead
http://www.ceu-lang.org/
======
pron
The language is a less-restricted (and less verifiable) Esterel descnedant.
Esterel and its derivatives have been used successfully by the industry, for
many years, to write fully verifiable, safety-critical, real-time reactive
systems.

[1]:
[https://en.wikipedia.org/wiki/Esterel](https://en.wikipedia.org/wiki/Esterel)

~~~
ufo
What kind of restrictions are you thinking about here? I don't know Esterel
very well but Céu is very restrictive in order to ensure that responses to
events don't loop. There are no recursive functions, no dynamic allocation,
etc.

~~~
pron
Esterel is not Turing complete, and it doesn't allow dynamic allocation.

~~~
ufo
Neither does Céu (not counting the C code you link against)

~~~
fsantanna
Your impressions about Céu are very accurate, but I would like to add some
remarks. There are three possible perspectives about the language: the
"static", presented in the SenSys'13 paper; the "dynamic", presented in the
Modularity'15 paper; and also the actual compiler publicly available.

The static version shares similar restrictions to Esterel, as you both pointed
out. The dynamic version allows dynamic allocation inside lexical pools,
keeping static memory management (no GC or "free"), but with possible
unbounded memory usage. The actual compiler is even less restrictive and just
gives warnings for unbounded loops, recursive calls, and so on.

------
biot
I can't be the only person wondering: how do you pronounce it? Kay-you/Say-
you? Kyuh/Syuh?

~~~
c4n4rd
Ceu (Portuguese) means Sky in English.

I think it is a take on Lua (the scripting language) which means moon.

The pronunciation is like 'Seoul' (South Korean Capital), with the 'e'
pronuonced slightly more open as in egg.

~~~
kyllo
Which pronunciation of Seoul is it like? The way Koreans pronounce it? The way
Americans pronounce it? The way Europeans pronounce it?

I'm confused because Seoul doesn't have an 'e' sound in it at all, in Korean.

~~~
agumonkey
Is the 'e' skipped [soul] ? almost silent [s_oul] ? or a transition like
[s~woul] ?

ps: forgot about
[https://translate.google.com/#en/ko/seoul](https://translate.google.com/#en/ko/seoul),
according to them it's not entirely silent.

~~~
kyllo
어 (transliterated as either "eo" or "uh") is a vowel that I would describe as
like the "u" sound in the word "fun" but with the mouth open a bit wider.

It's nothing like any of the sounds an "e" can represent in English.

Europeans tend to pronounce it "See-OOL" which is just completely wrong.

~~~
devonkim
It's a bit longer, always morphemic version of a schwa I believe.

------
flippyhead
I discovered this while struggling with C++ for an Arduino project. I'm really
digging Ceu as an alternative that runs directly (and efficiently!) on the
Arduino.

------
ufo
One of the neat features of Céu is that it has Simula-like objects with
coroutines. Method calls are asynchronous, can be paused while they wait for
events and many objects can be simulated run concurrently. One of the students
here in the lab is experimenting with using Céu to code the logic for some
simple 2D games and according to him the event system allows you to write code
in a very "natural" way.

Another special feature of Céu is "strong abortion" with the par/or primitive.
par/or lets you run two computations concurrently and if one of them completes
the other one is aborted and all its resources are freed. Aborting
asynchronous computations is not something that all asynchronous programming
systems let you do very well.

(btw, if anyone is wondering, Céu means sky in Portuguese)

------
cschep
Naming things is hard, but this seems like a total punt. :) Help us out!

------
tormeh
Discovered this right after handing in my master thesis where I wrote an
(extremely) prototype compiler for my own language which has a similar
approach.

Synchronous seems to be the way to go for multithreaded programs where optimal
performance is not required.

------
digsmahler
My favorite singer is Céu.
[https://en.wikipedia.org/wiki/C%C3%A9u](https://en.wikipedia.org/wiki/C%C3%A9u)

------
rwmj
I have flashbacks to Occam.

