|
| 1 | +--- |
| 2 | +title: Videos |
| 3 | +description: Videos presented by the Lingua Franca team. |
| 4 | +--- |
| 5 | + |
| 6 | +Lingua Franca (LF) is a polyglot coordination language for concurrent and possibly time-sensitive |
| 7 | +applications ranging from low-level embedded code to distributed cloud and edge applications. |
| 8 | +This page collects videos presented by the Lingua Franca team: |
| 9 | + |
| 10 | +* [Technical Talks](#technical-talks) |
| 11 | +* [Weekly Research Meetings](#weekly-research-meetings) |
| 12 | +* [Short Course](#short-course) |
| 13 | +* [Tutorial](#tutorial-from-2021) |
| 14 | + |
| 15 | +## Technical Talks |
| 16 | + |
| 17 | +* [Decentralized Coordination in Federated Lingua Franca](https://youtu.be/eDBOwr5iD3s?si=rVzd4wXsUGgEHmvD), Nov. 20, 2024. |
| 18 | +* [Trading Off Consistency and Availability using Lingua Franca](https://youtu.be/3lHmiWOedHM?si=6E-SU58zx6n2dT6B), Nov. 10, 2024. |
| 19 | +* [Deterministic Concurrency in Cyber-Physical Systems](https://youtu.be/OA_GknXKe4g?si=ulryQ7gpVivAfoX3), June 16, 2023. |
| 20 | +* [Deterministic Concurrency and the Lingua Franca Coordination Language](https://youtu.be/GT4NJ5XnEt4?si=wzrtX72PgAtPS_Yk), April 18, 2023. |
| 21 | +* [Verifying Parallel and Distributed Systems: The Observer Problem](https://youtu.be/20EKKsdWTQ8?si=aTSiPijMw9lDVajY), Feb. 9, 2023. |
| 22 | +* [Trading off Consistency and Availability in Cyber-Physical Systems](https://youtu.be/VbQPdTZjsZo?si=hAJhLt5e7m3PQzIx), Jan. 28, 2023. |
| 23 | +* [Time for All Programs, Not Just Real-Time Programs](https://youtu.be/WlQ8oXG1K8c?si=vSgP5xcZJL3-2QdH), Oct. 25, 2021. |
| 24 | +* [10-minute Demo of Lingua Franca](https://youtu.be/UZ1P70Rz5sY?si=N3MKYsgKxZr21bsD), May 6, 2021. |
| 25 | + |
| 26 | +More videos can be found on this [playlist](https://youtube.com/playlist?list=PL4zzL7roKtfWbzXhty_kS9fkGoyt-jYzU&si=w8wtPVwPkSWqOIMC). |
| 27 | + |
| 28 | + |
| 29 | +## Weekly Research Meetings |
| 30 | + |
| 31 | +The LF team meets approximately once a week, and sometimes the meetings are recorded. |
| 32 | +These recordings can be found in |
| 33 | +[this Google Drive folder](https://drive.google.com/drive/folders/1puJdbrsgG0WhaGsOEJVUM_8NgBkeSmwH?usp=sharing). |
| 34 | + |
| 35 | +## Short Course |
| 36 | + |
| 37 | +In May, 2022, Edward Lee gave a [short course on software design for cyber-physical systems]( |
| 38 | +https://www.youtube.com/playlist?list=PL4zzL7roKtfUWcXJ_O9w8GzwJrCwcjLyb) that featured Lingua Franca. |
| 39 | + |
| 40 | +## Tutorial from 2021 |
| 41 | + |
| 42 | +On Oct. 8, 2021, we offered a tutorial on Lingua Franca for the EMSOFT conference, a part of ESWEEK. |
| 43 | +This tutorial is dated, and many aspects of the language have changed since then. |
| 44 | +Nevertheless, the videos may provide a useful entry point. |
| 45 | +A [video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o) recording is available in six segments, as detailed below. |
| 46 | + |
| 47 | +**Useful links:** |
| 48 | + |
| 49 | +- [Complete video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o) |
| 50 | +- [Part I: Introduction](#introduction) |
| 51 | +- [Part II: Hello World](#hello) |
| 52 | +- [Part III: Target Languages](#target) |
| 53 | +- [Part IV: Basic Concepts](#concepts) |
| 54 | +- [Part V: Concurrency and Performance](#concurrency) |
| 55 | +- [Part VI: Research Overview](#research) |
| 56 | +- [Slides](https://docs.google.com/presentation/d/14cfIMmkBFwt6NOj2ujVs7YXPAXYsoHgLS2rUgBM-Deg/present?slide=id.g623f095f12_0_0) |
| 57 | + |
| 58 | +### Part I: Introduction |
| 59 | + |
| 60 | +This part briefly describes the background of the project and explains how to get started with the software. |
| 61 | + |
| 62 | +:::warning |
| 63 | +These videos mentioned Epoch, an IDE that is no longer actively maintained. We recommend using our VS Code extension instead. |
| 64 | +::: |
| 65 | + |
| 66 | +**Useful links:** |
| 67 | + |
| 68 | +- [Complete video of part I](https://youtu.be/7vkhX5tS_oI) |
| 69 | +- Individual parts of the video: |
| 70 | + <!--img style="float: right;" src="./../assets/images/tutorial/vm.png" width=50%--> |
| 71 | + |
| 72 | + | Contents | |
| 73 | + | -------------------------------------------------------------------------------------------------------------------------------------------- | |
| 74 | + | [Introduction](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=0s) | |
| 75 | + | [Motivation](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=61s) | |
| 76 | + | [Overview of this tutorial](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=185s) | |
| 77 | + | [History of the project](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=668s) | |
| 78 | + | [Participating](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=897s) | |
| 79 | + | [Getting started](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=925s) | |
| 80 | + | [Native releases (Epoch IDE and lfc)](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=1063s) | |
| 81 | + | [Virtual Machine with LF pre-installed](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=1311s) | |
| 82 | + |
| 83 | +- [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. |
| 84 | +- [Epoch IDE and lfc command-line compiler](https://releases.lf-lang.org/): Add `lfc` (and `epoch`) to your `$PATH` environment variable. |
| 85 | +- [Requirements for each target language](https://reqs.lf-lang.org/): We use the C target in this tutorial. |
| 86 | + |
| 87 | +### Part II: Hello World |
| 88 | + |
| 89 | +This part introduces the language with a simple example. |
| 90 | + |
| 91 | +**Useful links:** |
| 92 | + |
| 93 | +- [Complete video of part II](https://youtu.be/GNwaf4OpfPM) |
| 94 | +- Individual parts of the video: |
| 95 | + | Contents| |
| 96 | + |-------------| |
| 97 | + | [Open Epoch and create a project](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=0s)| |
| 98 | + | [Hello World](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=104s)| |
| 99 | + | [Adding a timer](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=284s)| |
| 100 | + | [Adding a timeout target property](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=426s)| |
| 101 | + | [Adding state variables](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=470s) | |
| 102 | + | [Creating and connecting multiple reactors](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=635s) | |
| 103 | + | [Parameterized reactors](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1020s) | |
| 104 | + | [LF tour recap](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1102s) | |
| 105 | + | [Diagrams](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1157s) | |
| 106 | + |
| 107 | +### Part III: Target Languages |
| 108 | + |
| 109 | +This part focuses on the target languages other than C, namely C++, Python, TypeScript, and Rust. |
| 110 | + |
| 111 | +**Useful links:** |
| 112 | + |
| 113 | +- [Complete video of part III](https://youtu.be/0AteHXOHnto) |
| 114 | +- Individual parts of the video: |
| 115 | + | Contents| |
| 116 | + |-------------| |
| 117 | + | [Introduction](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=0s) | |
| 118 | + | [Cpp](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=57s) | |
| 119 | + | [Python](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=650s) | |
| 120 | + | [Python Demo: Piano Synth](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=1270s) | |
| 121 | + | [TypeScript](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=1555s) | |
| 122 | + | [Rust](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=2014s) | |
| 123 | + |
| 124 | +### Part IV: Basic Concepts |
| 125 | + |
| 126 | +This part focuses on basic concepts in the language and includes three demos. |
| 127 | + |
| 128 | +**Useful links:** |
| 129 | + |
| 130 | +- [Complete video of part IV](https://youtu.be/tl3F_jgc248) |
| 131 | +- Individual parts of the video: |
| 132 | + | Contents| |
| 133 | + |-------------| |
| 134 | + | [Reflex game overview](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=0s) | |
| 135 | + | [Generating the prompts: Basic concepts](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=310s) | |
| 136 | + | [Program control of time: Logical action](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=435s) | |
| 137 | + | [Handling external events: Physical action](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=585s) | |
| 138 | + | [Cycle and causality loop](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=782s) | |
| 139 | + | [Reflex game in Python](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=963s) | |
| 140 | + | [The Rhythm example](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=1155s) | |
| 141 | + |
| 142 | +### Part V: Concurrency |
| 143 | + |
| 144 | +This part focuses on how the language expresses concurrency, exploits multicore, and supports distributed execution. |
| 145 | + |
| 146 | +**Useful links:** |
| 147 | + |
| 148 | +- [Complete video of part V](https://youtu.be/MoTf8L0jOD0) |
| 149 | +- Individual parts of the video: |
| 150 | + | Contents| |
| 151 | + |-------------| |
| 152 | + | [Introduction](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=0s) | |
| 153 | + | [Banks and Multiports](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=39s) | |
| 154 | + | [Utilizing Multicore](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=569s) | |
| 155 | + | [Tracing](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1069s) | |
| 156 | + | [Performance](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1420s) | |
| 157 | + | [Federated Execution](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1765s) | |
| 158 | + |
| 159 | +### Part VI: Research Overview |
| 160 | + |
| 161 | +This part focuses on a few of the research projects that have been stimulated by the Lingua Franca project. |
| 162 | + |
| 163 | +**Useful links:** |
| 164 | + |
| 165 | +- [Complete video of part VI](https://youtu.be/GNwaf4OpfPM) |
| 166 | +- Individual parts of the video: |
| 167 | + | Contents| |
| 168 | + |-------------| |
| 169 | + | [Introduction](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=0s) | |
| 170 | + | [AUTOSAR](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=375s) | |
| 171 | + | [Autoware/Carla](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=867s) | |
| 172 | + | [Bare Iron Platforms](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=1663s) | |
| 173 | + | [Modal Models](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2076s) | |
| 174 | + | [Automated Verification](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2432s) | |
| 175 | + | [Secure Federated Execution](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2877s) | |
| 176 | + | [LF Language Server](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=3247s) | |
0 commit comments