|
| 1 | +--- |
| 2 | +title: Tutorial Videos |
| 3 | +description: Tutorial videos presented by the Lingua Franca team. |
| 4 | +--- |
| 5 | + |
| 6 | +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. |
| 7 | +A [video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o) recording is available in six segments, as detailed below. |
| 8 | + |
| 9 | +**Useful links:** |
| 10 | + |
| 11 | +- [Complete video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o) |
| 12 | +- [Part I: Introduction](#introduction) |
| 13 | +- [Part II: Hello World](#hello) |
| 14 | +- [Part III: Target Languages](#target) |
| 15 | +- [Part IV: Basic Concepts](#concepts) |
| 16 | +- [Part V: Concurrency and Performance](#concurrency) |
| 17 | +- [Part VI: Research Overview](#research) |
| 18 | +- [Slides](https://docs.google.com/presentation/d/14cfIMmkBFwt6NOj2ujVs7YXPAXYsoHgLS2rUgBM-Deg/present?slide=id.g623f095f12_0_0) |
| 19 | + |
| 20 | +## Part I: Introduction |
| 21 | + |
| 22 | +This part briefly describes the background of the project and explains how to get started with the software. |
| 23 | + |
| 24 | +:::warning |
| 25 | +These videos mentioned Epoch, an IDE that is no longer actively maintained. We recommend using our VS Code extension instead. |
| 26 | +::: |
| 27 | + |
| 28 | +**Useful links:** |
| 29 | + |
| 30 | +- [Complete video of part I](https://youtu.be/7vkhX5tS_oI) |
| 31 | +- Individual parts of the video: |
| 32 | + <!--img style="float: right;" src="./../assets/images/tutorial/vm.png" width=50%--> |
| 33 | + |
| 34 | + | Contents | |
| 35 | + | -------------------------------------------------------------------------------------------------------------------------------------------- | |
| 36 | + | [Introduction](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=0s) | |
| 37 | + | [Motivation](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=61s) | |
| 38 | + | [Overview of this tutorial](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=185s) | |
| 39 | + | [History of the project](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=668s) | |
| 40 | + | [Participating](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=897s) | |
| 41 | + | [Getting started](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=925s) | |
| 42 | + | [Native releases (Epoch IDE and lfc)](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=1063s) | |
| 43 | + | [Virtual Machine with LF pre-installed](https://www.youtube.com/watch?v=7vkhX5tS_oI&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=1&t=1311s) | |
| 44 | + |
| 45 | +- [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. |
| 46 | +- [Epoch IDE and lfc command-line compiler](https://releases.lf-lang.org/): Add `lfc` (and `epoch`) to your `$PATH` environment variable. |
| 47 | +- [Requirements for each target language](https://reqs.lf-lang.org/): We use the C target in this tutorial. |
| 48 | + |
| 49 | +## Part II: Hello World |
| 50 | + |
| 51 | +This part introduces the language with a simple example. |
| 52 | + |
| 53 | +**Useful links:** |
| 54 | + |
| 55 | +- [Complete video of part II](https://youtu.be/GNwaf4OpfPM) |
| 56 | +- Individual parts of the video: |
| 57 | + | Contents| |
| 58 | + |-------------| |
| 59 | + | [Open Epoch and create a project](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=0s)| |
| 60 | + | [Hello World](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=104s)| |
| 61 | + | [Adding a timer](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=284s)| |
| 62 | + | [Adding a timeout target property](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=426s)| |
| 63 | + | [Adding state variables](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=470s) | |
| 64 | + | [Creating and connecting multiple reactors](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=635s) | |
| 65 | + | [Parameterized reactors](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1020s) | |
| 66 | + | [LF tour recap](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1102s) | |
| 67 | + | [Diagrams](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1157s) | |
| 68 | + |
| 69 | +## Part III: Target Languages |
| 70 | + |
| 71 | +This part focuses on the target languages other than C, namely C++, Python, TypeScript, and Rust. |
| 72 | + |
| 73 | +**Useful links:** |
| 74 | + |
| 75 | +- [Complete video of part III](https://youtu.be/0AteHXOHnto) |
| 76 | +- Individual parts of the video: |
| 77 | + | Contents| |
| 78 | + |-------------| |
| 79 | + | [Introduction](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=0s) | |
| 80 | + | [Cpp](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=57s) | |
| 81 | + | [Python](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=650s) | |
| 82 | + | [Python Demo: Piano Synth](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=1270s) | |
| 83 | + | [TypeScript](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=1555s) | |
| 84 | + | [Rust](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=2014s) | |
| 85 | + |
| 86 | +## Part IV: Basic Concepts |
| 87 | + |
| 88 | +This part focuses on basic concepts in the language and includes three demos. |
| 89 | + |
| 90 | +**Useful links:** |
| 91 | + |
| 92 | +- [Complete video of part IV](https://youtu.be/tl3F_jgc248) |
| 93 | +- Individual parts of the video: |
| 94 | + | Contents| |
| 95 | + |-------------| |
| 96 | + | [Reflex game overview](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=0s) | |
| 97 | + | [Generating the prompts: Basic concepts](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=310s) | |
| 98 | + | [Program control of time: Logical action](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=435s) | |
| 99 | + | [Handling external events: Physical action](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=585s) | |
| 100 | + | [Cycle and causality loop](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=782s) | |
| 101 | + | [Reflex game in Python](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=963s) | |
| 102 | + | [The Rhythm example](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=1155s) | |
| 103 | + |
| 104 | +## Part V: Concurrency |
| 105 | + |
| 106 | +This part focuses on how the language expresses concurrency, exploits multicore, and supports distributed execution. |
| 107 | + |
| 108 | +**Useful links:** |
| 109 | + |
| 110 | +- [Complete video of part V](https://youtu.be/MoTf8L0jOD0) |
| 111 | +- Individual parts of the video: |
| 112 | + | Contents| |
| 113 | + |-------------| |
| 114 | + | [Introduction](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=0s) | |
| 115 | + | [Banks and Multiports](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=39s) | |
| 116 | + | [Utilizing Multicore](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=569s) | |
| 117 | + | [Tracing](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1069s) | |
| 118 | + | [Performance](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1420s) | |
| 119 | + | [Federated Execution](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1765s) | |
| 120 | + |
| 121 | +## Part VI: Research Overview |
| 122 | + |
| 123 | +This part focuses on a few of the research projects that have been stimulated by the Lingua Franca project. |
| 124 | + |
| 125 | +**Useful links:** |
| 126 | + |
| 127 | +- [Complete video of part VI](https://youtu.be/GNwaf4OpfPM) |
| 128 | +- Individual parts of the video: |
| 129 | + | Contents| |
| 130 | + |-------------| |
| 131 | + | [Introduction](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=0s) | |
| 132 | + | [AUTOSAR](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=375s) | |
| 133 | + | [Autoware/Carla](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=867s) | |
| 134 | + | [Bare Iron Platforms](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=1663s) | |
| 135 | + | [Modal Models](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2076s) | |
| 136 | + | [Automated Verification](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2432s) | |
| 137 | + | [Secure Federated Execution](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=2877s) | |
| 138 | + | [LF Language Server](https://www.youtube.com/watch?v=afJowM35YHg&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=6&t=3247s) | |
0 commit comments