saved
Lingua Franca: intuitive concurrent programming in any language
Hraness wrote this summary from a saved copy of the source. Quotations are taken word for word from the source.
gist
Lingua Franca's homepage pitches a reactor-oriented coordination language for deterministic, multi-threaded, time-sensitive, embedded and distributed programs. Developers wire reactive components together in LF and write reaction bodies in C, C++, Python, TypeScript or Rust, while the compiler rules out race conditions and flags causality loops. A rock-paper-scissors example shows the code, the generated diagrams and a C implementation.
ideas
- Coordination, not a new language. LF describes reactors, ports, connections and timing, while reaction bodies stay in an existing target language.
- Determinism by construction. The site claims more repeatable behavior than threads, pub-sub, actors or service-oriented architectures, with no manual synchronization.
- Time as semantics. Logical time gives "at the same time" a precise meaning, so simultaneous reveals in rock paper scissors are fair, and causality analysis rejects a player that peeks first.
- Code and diagrams together. An interactive three-step panel pairs LF source with auto-generated diagrams of reactors, reactions, ports and a delayed logical action, then shows a C target.
- Research lineage. Started at UC Berkeley and joined by Kiel, TU Dresden, UT Dallas, NTNU, Hanyang and ASU, it moves from a single machine to a distributed system with few changes.
quotes
“Lingua Franca is the first reactor-oriented coordination language.”
“Lingua Franca eliminates race conditions by construction, makes it easy to specify timed behavior, and removes the need to perform manual synchronization.”
“In Lingua Franca, "at the same time" has a clear and precise meaning.”
“With Lingua Franca, you forget about thread libraries or message passing middlewares, but you continue using the languages you like.”