-
Notifications
You must be signed in to change notification settings - Fork 63
Tutorial
Lingua Franca (LF) is a polyglot coordination language for concurrent and possibly time-sensitive applications ranging from low-level embedded code to distributed cloud and edge applications. On Oct. 8, 2021, we offered a tutorial on Lingua Franca for the EMSOFT conference, a part of ESWEEK. A video playlist recording is available in six segments, as detailed below.
Useful links:
This part briefly describes the background of the project and explains how to get started with the software.
Useful links:
-
Individual parts of the video:
Contents Introduction Motivation Overview of this tutorial History of the project Participating Getting started Native releases (Epoch IDE and lfc) Virtual Machine with LF pre-installed -
Virtual machine image: https://vm.lf-lang.org/: download the
Ubuntu-for-LF.ova
image and import into your favorite virtualization software (e.g., VirtualBox or VMWare Player). Start the VM and run Epoch IDE by clicking on the icon on the left. -
Epoch IDE and lfc command-line compiler: https://releases.lf-lang.org/. Add
lfc
(andepoch
) to your$PATH
environment variable. -
Requirements for each target language: https://reqs.lf-lang.org/ (we use the C target here).
The tutorial starts at 9 AM EST (6AM PST). All times are given in EST.
- Introduction (9:00) [Edward A. Lee]
- Getting Started (9:05) [Marten Lohstroh]
- 5-minute Q&A (9:15)
-
Hello World (9:20) [Marten Lohstroh]
- Reaction to
startup
- Inspect Generated Code
- State Variables
- Timers
- Simple Composition
- Parameters
- Reaction to
- Diagrams (9:35) [Alexander Schulz-Rosengarten]
- Other Targets
- C++ (9:40) [Christian Menard]
- Python (9:48) [Soroush Bateni]
- Demo: Piano Synth (9:56) [Steven Wong]
- TypeScript (10:04) [Marten Lohstroh]
- Rust (10:12) [Clément Fournier]
- 5-minute Q&A (10:20)
-
Basic Concepts (using Reflex Game) (10:25) [Edward A. Lee]
- Reaction Ordering
- Causality Loops
- Physical Time vs. Logical Time
- Demo: Reflex Game in Python [Steven Wong]
- Demo: Rhythm (10:40) (download sources) [Soroush Bateni]
- 5-minute Q&A
- Concurrency & Performance
- Banks and Multiports (10:55) [Christian Menard]
- Utilizing Multicore (11:00) [Marten Lohstroh]
- Tracing (11:05) [Hokeun Kim]
- Performance (11:10) [Christian Menard]
- Federated Execution (11:15) [Soroush Bateni]
- 5-minute Q&A
- Ongoing Research
- Overview (11:30) [Marten Lohstroh]
- AUTOSAR (11:35) [Christian Menard]
- Autoware/Carla (11:40) [Soroush Bateni]
- Bare Iron Platforms (11:55) [Efsane Soyer]
- Modal Models (12:00) [Alexander Schulz-Rosengarten]
- Automated Verification (12:05) [Shaokai Lin]
- Secure Federated Execution (12:10) [Hokeun Kim]
- LF Language Server (12:15) [Peter Donovan]
- 10-minute Q&A (12:20)
- Closing remarks (12:30) [Edward A. Lee]