Modeling and Programming Time-Sensitive Systems Using Lingua Franca Coordination Language
Hands-on tutorial (2:00 β 4:00 PM CEST, 2 hours)
Start here to set up your environment and get the hands-on lab materials.
Set up the Lingua Franca toolchain, VS Code extension, and CLI (this tutorial uses LF v0.13.0).
Installation InstructionsCreate your own copy of the tutorial template repository with eight short labs in C and Python.
Open GitHub LabsDownload preconfigured VirtualBox and UTM images for Windows and Mac users.
Download Virtual MachinesThis hands-on, interactive tutorial introduces Lingua Franca (LF), a polyglot coordination language for building deterministic, time-sensitive systems. You write ordinary C or Python code inside reactors, and LF coordinates when that code runs, locally or across multiple processes, with a well-defined model of time. It is held during the FDL 2026 Summer School in Rome, Italy, part of the Forum on Specification & Design Languages (FDL) 2026.
The tutorial is built around eight short labs, each centered on a small program that you compile, run, and extend. Every lab exists in both C and Python, teaching the same LF concepts with the same exercisesβpick the language you are more comfortable with and stay on that path. The tutorial is intended for researchers, engineers, and graduate students with programming experience interested in the design of time-sensitive systems with deterministic concurrency.
FDL 2026 Summer School participants including Ph.D. students, academic researchers, and industry engineers. No prior experience with LF is requiredβbasic proficiency in C and/or Python is recommended.
Time-sensitive systems, such as cyber-physical systems and embedded control software, often involve multiple concurrent components interacting under real-time constraints. Ensuring deterministic behavior and coordinated timing across these components is a notorious challenge with conventional programming approaches (threads, pub/sub, actor frameworks, etc.).
Lingua Franca is a polyglot coordination language designed to address this challenge by offering a framework for building concurrent, time-sensitive systems that behave deterministically and predictably. An LF program defines interactions between reactive components called reactors and emphasizes deterministic coordination with explicit handling of timing.
Schedule: September 8, 2026, 2:00 PM β 4:00 PM (2 hours)
Introduction to the challenges of building time-sensitive systems and motivation for Lingua Franca. Overview of the reactor-oriented programming model and key language concepts (reactors, ports, timers, logical time, deterministic concurrency).
Led by: Instructor
Verify your Lingua Franca toolchain with the readiness checklist, choose your language path (C or Python), and compile and run your first reactor program.
Led by: Instructor & Teaching Assistant
Work through the eight short labs of the tutorial repository, each built around a small program you compile, run, and extend. The labs progress from reactors, ports, and timers, through logical time, determinism, physical actions, and modal reactors, to deadlines and federated execution.
Led by: Instructor & Teaching Assistant
Summary of key takeaways, pointers to advanced LF capabilities, project roadmap, and community involvement opportunities.
Led by: Instructor
Each lab is built around a small program you compile, run, and extend. The links in the tutorial repository point at both the C and Python versions of every lab. Total guided time is about 80-100 minutes, leaving room in a two-hour session for setup and questions.
| Lab | Theme | Main concepts |
|---|---|---|
| 1 | Ready, set, react | Toolchain, reactors, timers, reactions, diagrams |
| 2 | Building a reactor pipeline | Ports, connections, parameters, state |
| 3 | Tags, delays, and lag | Logical vs. physical time, microsteps, actions |
| 4 | Predictable ordering | Determinism, reaction order, causality loops |
| 5 | Reacting to the outside world | Physical actions, threads, preambles |
| 6 | Changing behavior with modes | Modal reactors, reset and history transitions |
| 7 | Useful work under a time budget | Deadlines, handlers, anytime computation |
| 8 | One model, multiple processes | Federated execution, the RTI |
Participants should bring a laptop for the hands-on sessions. Lingua Franca's toolchain supports Linux, macOS, and Windows (via WSL). This tutorial uses Lingua Franca v0.13.0.
Step-by-step setup for the toolchain, VS Code extension, and CLI is in the Lingua Franca installation documentation and in the tutorial repository's setup section.
Highlights:
lf-lang.vscode-lingua-franca).curl -Ls https://install.lf-lang.org | bash -s cli.clang or gcc) and CMakeThe hands-on session follows the eight labs in the lf-tutorial-fdl26 template repository on GitHub. Before the tutorial, create your own private copy from the template (Use this template > Create a new repository), clone it, and open the folder in VS Code. The same labs exist in both C and Python.

Arizona State University, USA
Assistant professor of Computer Science and Engineering in the School of Computing and Augmented Intelligence (SCAI) at Arizona State University. Ph.D. in EECS from UC Berkeley (2017) with a focus on distributed cyber-physical systems and IoT security. Research interests include cyber-physical systems, distributed systems, real-time systems, computer security, and computer architecture. Recipient of ACM/IEEE Best Paper Award at CPSWeek, IEEE Micro Top Picks Honorable Mention, and 1st Place in ESSC at ESWEEK.
π§ hokeun@asu.edu

This webpage serves as the central hub for all tutorial materials. Participants can expect to find:
Materials will be updated as we approach the tutorial date. Check back regularly for the latest resources.
Join the Lingua Franca Zulip community for Q&A before and after the tutorial. This connects you with an active open-source community spanning multiple institutions for continued learning and support.
Get started with Lingua Franca and learn more about the summer school.