Ceu is a synchronous programming language that reconciles Structured Concurrency with Event-Driven Programming:
Ceu extends classical structured programming with three main functionalities:
- Structured Deterministic Concurrency:
- A set of structured primitives to compose concurrent tasks (e.g.,
spawn
,par-or
,toggle
). - A synchronous and deterministic scheduling policy, which provides predictable behavior and safe abortion of tasks.
- A container primitive to hold dynamic tasks, which automatically releases them as they terminate.
- A set of structured primitives to compose concurrent tasks (e.g.,
- Event Signaling Mechanisms:
- An
await
primitive to suspend a task and wait for events. - A
broadcast
primitive to signal events and awake awaiting tasks.
- An
- Lexical Memory Management:
- Even dynamic allocation is attached to lexical blocks.
- Strict escaping rules to preserve structure reasoning.
- Garbage collection restricted to local references only.
Ceu is inspired by Esterel and Lua.
Any feedback is welcome.
Francisco