Céu is a reactive language targeted at embedded systems and intended to offer a higher-level and safer alternative to C. Reactive programs are mostly guided by the environment, which issues input events into the program that must be promptly acknowledged.
Céu supports multiple lines of execution, known as trails, which are allowed to share variables in a safe and seamless way (e.g. no need for locks or semaphores). The synchronous concurrency model of Céu greatly diverges from conventional multithreading (e.g. pthreads) and the actor model (e.g. erlang): In Céu, trails execute synchronized in reaction to a single input event at a time, hence, it is impossible to have trails reacting to different events. The disciplined step-by-step execution in Céu enables a rigorous analysis that guarantees at compile time that programs are completely race free.
Céu integrates well with C, being possible to define and call C functions from within Céu programs.
input int KEY; par/or do every 1s do _printf("Hello World!\n"); end with await KEY; end