What is it about?

Lingua Franca is the name for a programming language that allows software designers to define components (called "reactors") that can execute in parallel on multicore machines or on distributed computers. The functionality of each reactor is given in a "target language," a pre-existing and familiar programming language. Currently, Lingua Franca supports C, C++, Python, and TypeScript (a dialect of JavaScript) as target languages. The language includes constructs for controlling the timing of execution of programs, including both periodic and sporadic behavior, and the specification of deadlines. The language is being developed collaboratively by an international team and is fully open source.

Featured Image

Why is it important?

Concurrent software, where multiple interacting programs run at the same time, is notoriously difficult to design and often exhibits unpredictable behavior. Lingua Franca makes it much easier to reason about the behavior of such programs to get predictable and controllable interaction between the various software components.

Perspectives

The Lingua Franca project is currently my main research effort. It has given me the opportunity to leverage nearly 40 years of experience with software design techniques. The language combines the best features of several models of computation that formed the center of my prior research, including data flow, process networks, discrete-event systems, and synchronous languages.

Edward Lee
University of California at Berkeley

Read the Original

This page is a summary of: Toward a Lingua Franca for Deterministic Concurrent Systems, ACM Transactions on Embedded Computing Systems, July 2021, ACM (Association for Computing Machinery),
DOI: 10.1145/3448128.
You can read the full text:

Read

Contributors

The following have contributed to this page