Skip to main content
Upcoming Tutorial

Lingua Franca Tutorial

Modeling and Programming Time-Sensitive Systems Using Lingua Franca Coordination Language

πŸ“… September 8, 2026πŸ“ Rome, Italy🎯 Part of the FDL 2026 Summer School

Hands-on tutorial (2:00 – 4:00 PM CEST, 2 hours)

πŸš€ Tutorial Quick Links

Start here to set up your environment and get the hands-on lab materials.

βš™οΈ

Install LF

Set up the Lingua Franca toolchain, VS Code extension, and CLI (this tutorial uses LF v0.13.0).

Installation Instructions
πŸ’»

Hands-on Labs

Create your own copy of the tutorial template repository with eight short labs in C and Python.

Open GitHub Labs
πŸ“¦

Ready-to-run VMs

Download preconfigured VirtualBox and UTM images for Windows and Mac users.

Download Virtual Machines

Abstract

This 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.

🎯 Target Audience

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.

πŸ’‘ Motivation & Relevance

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.

Key Benefits

  • Deterministic Concurrency: Race-free execution on multiple cores or devices without special synchronization code
  • Explicit Timing Semantics: Specify and maintain precise temporal behavior without ad-hoc timing code
  • Polyglot Support: Reactor logic can be written in C, Python, C++, Rust, or TypeScript
  • Distributed Execution: Built-in support for federated execution across networked devices

πŸ“‹ Tutorial Schedule

Schedule: September 8, 2026, 2:00 PM – 4:00 PM (2 hours)

Introduction to Lingua Franca

2:00 PM – 2:15 PM
15 minutes

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

Setup and Hello World

2:15 PM – 2:25 PM
10 minutes

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

Hands-on Labs

2:25 PM – 3:55 PM
90 minutes

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

Wrap-Up and Q&A

3:55 PM – 4:00 PM
5 minutes

Summary of key takeaways, pointers to advanced LF capabilities, project roadmap, and community involvement opportunities.

Led by: Instructor

πŸ§ͺ The Eight Labs

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.

LabThemeMain concepts
1Ready, set, reactToolchain, reactors, timers, reactions, diagrams
2Building a reactor pipelinePorts, connections, parameters, state
3Tags, delays, and lagLogical vs. physical time, microsteps, actions
4Predictable orderingDeterminism, reaction order, causality loops
5Reacting to the outside worldPhysical actions, threads, preambles
6Changing behavior with modesModal reactors, reset and history transitions
7Useful work under a time budgetDeadlines, handlers, anytime computation
8One model, multiple processesFederated execution, the RTI

πŸŽ“ What You'll Learn

Concepts

  • Reactor-oriented programming model
  • Reactors, ports, connections, and state
  • Tags, logical time, and physical time
  • Deterministic reaction ordering and causality
  • Modal reactors, deadlines, and federations

Hands-on Skills

  • Writing, compiling, and running LF programs with C or Python
  • Bringing external events into a program with physical actions
  • Enforcing timing requirements with deadlines
  • Turning a multi-reactor program into a federation
  • Using VS Code with the LF extension and diagrams

πŸ’» Technical Requirements & Setup

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.

Installation guide

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:

  • Java 17 or higher is required for the compiler and tooling.
  • Windows: use WSL with Ubuntu and install all LF components inside Linux (not MSYS/Git Bash).
  • VS Code: install the Lingua Franca extension from the Marketplace (lf-lang.vscode-lingua-franca).
  • CLI: one-line install with curl -Ls https://install.lf-lang.org | bash -s cli.

Setup Options

  • Native Installation (recommended): One-line install script or VS Code extension installation, following the installation guide above.
  • Pre-configured VMs: Download the tutorial virtual machines with LF v0.13.0, VS Code, the LF extension, and both target toolchains preinstalled. We provide one VirtualBox VM for Windows users on Intel/AMD platforms and one UTM VM for macOS users on ARM architecture.

Dependencies

  • Java 17+ JDK
  • C path: a C compiler (clang or gcc) and CMake
  • Python path: Python 3.10 or newer, plus a C compiler and CMake
  • VS Code with the Lingua Franca extension

Hands-on Programming Materials

The 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.

πŸ‘₯ Instructor

Hokeun Kim

Hokeun Kim

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

πŸ§‘β€πŸ« Teaching Assistant

Byeonggil Jun

Byeonggil Jun

Ph.D. Student

Arizona State University, USA

πŸ“§ byeonggil@asu.edu

πŸ“š Materials & Resources

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.

Community Support

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.

Related Resources

Get started with Lingua Franca and learn more about the summer school.