Making Mainstream Programming Languages Deterministic Again (SYNCHRON '20)
Channel: Marten Lohstroh
Date: 2020-11-28

Synchronous languages are unique in the programming world with their emphasis (with some exceptions) on deterministic concurrency. Determinism enhances testability, predictability, and verifiability, and yet, synchronous languages have largely not caught on in the general software engineering community. This talk is about a coordination language called Lingua Franca (LF) that is based in part on synchronous/reactive principles. It is a polyglot coordination language with support (so far) for C, C++, Python, and TypeScript (a statically typed version of JavaScript). Program logic is given in one or more of those target languages, enabling developers to use familiar languages and integrate extensive libraries and legacy code.  Lingua Franca realizes a model of computation called Reactors (for actors, revisited) that extends synchronous/reactive principles with a logical timeline and timestamped events. It supports asynchronous injection of events from the environment, using callbacks or interrupts for example, without compromising its deterministic semantics. It also includes support for real-time computing and deadlines, making it a suitable implementation language for cyber-physical systems. Moreover, the generated code (in the C and C++ targets) transparently executes in parallel on multicore machines. LF programs can be distributed across networks without losing their determinism, and the language includes explicitly nondeterministic constructs for applications that require and/or tolerate nondeterminism. Lingua Franca is an open-source, BSD-style licensed collaboration between UC Berkeley, UT Dallas, TU Dresden, and Kiel University.

For more information, visit: https://docs.lf-lang.org/.

Video capture by Timothy Bourke.