Ceu = Structured Concurrency + Event-Driven Programming

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.
  • Event Signaling Mechanisms:
    • An await primitive to suspend a task and wait for events.
    • A broadcast primitive to signal events and awake awaiting tasks.
  • 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.