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
awaitprimitive to suspend a task and wait for events. - A
broadcastprimitive 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