diff --git a/docs/introduction.md b/docs/introduction.md index a512531b9..ab747d1b5 100644 --- a/docs/introduction.md +++ b/docs/introduction.md @@ -25,4 +25,4 @@ The reactor-oriented programming paradigm is informally described via the follow 8. _Concurrency_ — Dependencies between reactions are explicitly declared in a Lingua Franca program, and reactions that are not dependent on one another can be executed in parallel on a multi-core machine. If the target provides a support for federated execution, then execution can also be distributed across networks. ## Getting Started -To get started with Lingua Franca, [set up a development environment](./installation.md) and learn how to write [a first reactor](./writing-reactors/a-first-reactor.mdx). There are also a number of useful [tutorial videos](./tutorial-videos.mdx) available. +To get started with Lingua Franca, [set up a development environment](./installation.md) and learn how to write [a first reactor](./writing-reactors/a-first-reactor.mdx). There are also a number of potentially useful [videos](./videos.mdx) available. diff --git a/docs/legacy_routing.ts b/docs/legacy_routing.ts index 3c0556a59..adbee2543 100644 --- a/docs/legacy_routing.ts +++ b/docs/legacy_routing.ts @@ -1,8 +1,12 @@ export default [ { - "to": "/docs/tutorial-videos", + "to": "/docs/videos", "from": "/docs/handbook/tutorial-video" }, + { + "to": "/docs/videos", + "from": "/docs/tutorial-videos" + }, { "to": "/docs/", "from": "/docs/handbook/overview" diff --git a/docs/sidebars.ts b/docs/sidebars.ts index cde372c60..a6539d635 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -22,7 +22,7 @@ const sidebars: SidebarsConfig = { }, { "type": "doc", - "id": "tutorial-videos" + "id": "videos" }, { "type": "category", diff --git a/versioned_docs/version-0.9.0/tutorial-videos.mdx b/docs/videos.mdx similarity index 79% rename from versioned_docs/version-0.9.0/tutorial-videos.mdx rename to docs/videos.mdx index 497e6832b..b94ad0cc8 100644 --- a/versioned_docs/version-0.9.0/tutorial-videos.mdx +++ b/docs/videos.mdx @@ -1,9 +1,47 @@ --- -title: Tutorial Videos -description: Tutorial videos presented by the Lingua Franca team. +title: Videos +description: Videos presented by the Lingua Franca team. --- -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. +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. +This page collects videos presented by the Lingua Franca team: + +* [Technical Talks](#technical-talks) +* [Weekly Research Meetings](#weekly-research-meetings) +* [Short Course](#short-course) +* [Tutorial](#tutorial-from-2021) + +## Technical Talks + +* [Decentralized Coordination in Federated Lingua Franca](https://youtu.be/eDBOwr5iD3s?si=rVzd4wXsUGgEHmvD), Nov. 20, 2024. +* [Trading Off Consistency and Availability using Lingua Franca](https://youtu.be/3lHmiWOedHM?si=6E-SU58zx6n2dT6B), Nov. 10, 2024. +* [Deterministic Concurrency in Cyber-Physical Systems](https://youtu.be/OA_GknXKe4g?si=ulryQ7gpVivAfoX3), June 16, 2023. +* [Deterministic Concurrency and the Lingua Franca Coordination Language](https://youtu.be/GT4NJ5XnEt4?si=wzrtX72PgAtPS_Yk), April 18, 2023. +* [Verifying Parallel and Distributed Systems: The Observer Problem](https://youtu.be/20EKKsdWTQ8?si=aTSiPijMw9lDVajY), Feb. 9, 2023. +* [Trading off Consistency and Availability in Cyber-Physical Systems](https://youtu.be/VbQPdTZjsZo?si=hAJhLt5e7m3PQzIx), Jan. 28, 2023. +* [Time for All Programs, Not Just Real-Time Programs](https://youtu.be/WlQ8oXG1K8c?si=vSgP5xcZJL3-2QdH), Oct. 25, 2021. +* [10-minute Demo of Lingua Franca](https://youtu.be/UZ1P70Rz5sY?si=N3MKYsgKxZr21bsD), May 6, 2021. + +More videos can be found on this [playlist](https://youtube.com/playlist?list=PL4zzL7roKtfWbzXhty_kS9fkGoyt-jYzU&si=w8wtPVwPkSWqOIMC). + + +## Weekly Research Meetings + +The LF team meets approximately once a week, and sometimes the meetings are recorded. +These recordings can be found in +[this Google Drive folder](https://drive.google.com/drive/folders/1puJdbrsgG0WhaGsOEJVUM_8NgBkeSmwH?usp=sharing). + +## Short Course + +In May, 2022, Edward Lee gave a [short course on software design for cyber-physical systems]( +https://www.youtube.com/playlist?list=PL4zzL7roKtfUWcXJ_O9w8GzwJrCwcjLyb) that featured Lingua Franca. + +## Tutorial from 2021 + +On Oct. 8, 2021, we offered a tutorial on Lingua Franca for the EMSOFT conference, a part of ESWEEK. +This tutorial is dated, and many aspects of the language have changed since then. +Nevertheless, the videos may provide a useful entry point. A [video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o) recording is available in six segments, as detailed below. **Useful links:** @@ -17,7 +55,7 @@ A [video playlist](https://youtube.com/playlist?list=PL4zzL7roKtfXyKE3k8lOwPub9Y - [Part VI: Research Overview](#research) - [Slides](https://docs.google.com/presentation/d/14cfIMmkBFwt6NOj2ujVs7YXPAXYsoHgLS2rUgBM-Deg/present?slide=id.g623f095f12_0_0) -## Part I: Introduction +### Part I: Introduction This part briefly describes the background of the project and explains how to get started with the software. @@ -46,7 +84,7 @@ These videos mentioned Epoch, an IDE that is no longer actively maintained. We r - [Epoch IDE and lfc command-line compiler](https://releases.lf-lang.org/): Add `lfc` (and `epoch`) to your `$PATH` environment variable. - [Requirements for each target language](https://reqs.lf-lang.org/): We use the C target in this tutorial. -## Part II: Hello World +### Part II: Hello World This part introduces the language with a simple example. @@ -66,7 +104,7 @@ This part introduces the language with a simple example. | [LF tour recap](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1102s) | | [Diagrams](https://www.youtube.com/watch?v=GNwaf4OpfPM&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=2&t=1157s) | -## Part III: Target Languages +### Part III: Target Languages This part focuses on the target languages other than C, namely C++, Python, TypeScript, and Rust. @@ -83,7 +121,7 @@ This part focuses on the target languages other than C, namely C++, Python, Type | [TypeScript](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=1555s) | | [Rust](https://www.youtube.com/watch?v=0AteHXOHnto&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=3&t=2014s) | -## Part IV: Basic Concepts +### Part IV: Basic Concepts This part focuses on basic concepts in the language and includes three demos. @@ -101,7 +139,7 @@ This part focuses on basic concepts in the language and includes three demos. | [Reflex game in Python](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=963s) | | [The Rhythm example](https://www.youtube.com/watch?v=tl3F_jgc248&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=4&t=1155s) | -## Part V: Concurrency +### Part V: Concurrency This part focuses on how the language expresses concurrency, exploits multicore, and supports distributed execution. @@ -118,7 +156,7 @@ This part focuses on how the language expresses concurrency, exploits multicore, | [Performance](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1420s) | | [Federated Execution](https://www.youtube.com/watch?v=MoTf8L0jOD0&list=PL4zzL7roKtfXyKE3k8lOwPub9YEjulS4o&index=5&t=1765s) | -## Part VI: Research Overview +### Part VI: Research Overview This part focuses on a few of the research projects that have been stimulated by the Lingua Franca project. diff --git a/versioned_docs/version-0.8.0/sidebars.ts b/versioned_docs/version-0.8.0/sidebars.ts index 800d3da4f..d5bb3f7e9 100644 --- a/versioned_docs/version-0.8.0/sidebars.ts +++ b/versioned_docs/version-0.8.0/sidebars.ts @@ -22,7 +22,7 @@ const sidebars: SidebarsConfig = { }, { "type": "doc", - "id": "tutorial-videos" + "id": "videos" }, { "type": "category", diff --git a/versioned_docs/version-0.9.0/introduction.md b/versioned_docs/version-0.9.0/introduction.md index a512531b9..6bda37348 100644 --- a/versioned_docs/version-0.9.0/introduction.md +++ b/versioned_docs/version-0.9.0/introduction.md @@ -25,4 +25,4 @@ The reactor-oriented programming paradigm is informally described via the follow 8. _Concurrency_ — Dependencies between reactions are explicitly declared in a Lingua Franca program, and reactions that are not dependent on one another can be executed in parallel on a multi-core machine. If the target provides a support for federated execution, then execution can also be distributed across networks. ## Getting Started -To get started with Lingua Franca, [set up a development environment](./installation.md) and learn how to write [a first reactor](./writing-reactors/a-first-reactor.mdx). There are also a number of useful [tutorial videos](./tutorial-videos.mdx) available. +To get started with Lingua Franca, [set up a development environment](./installation.md) and learn how to write [a first reactor](./writing-reactors/a-first-reactor.mdx). There are also a number of useful [tutorial videos](./videos.mdx) available. diff --git a/versioned_docs/version-0.9.0/legacy_routing.ts b/versioned_docs/version-0.9.0/legacy_routing.ts index 3c0556a59..adbee2543 100644 --- a/versioned_docs/version-0.9.0/legacy_routing.ts +++ b/versioned_docs/version-0.9.0/legacy_routing.ts @@ -1,8 +1,12 @@ export default [ { - "to": "/docs/tutorial-videos", + "to": "/docs/videos", "from": "/docs/handbook/tutorial-video" }, + { + "to": "/docs/videos", + "from": "/docs/tutorial-videos" + }, { "to": "/docs/", "from": "/docs/handbook/overview" diff --git a/versioned_docs/version-0.9.0/sidebars.ts b/versioned_docs/version-0.9.0/sidebars.ts index cde372c60..a6539d635 100644 --- a/versioned_docs/version-0.9.0/sidebars.ts +++ b/versioned_docs/version-0.9.0/sidebars.ts @@ -22,7 +22,7 @@ const sidebars: SidebarsConfig = { }, { "type": "doc", - "id": "tutorial-videos" + "id": "videos" }, { "type": "category", diff --git a/docs/tutorial-videos.mdx b/versioned_docs/version-0.9.0/videos.mdx similarity index 100% rename from docs/tutorial-videos.mdx rename to versioned_docs/version-0.9.0/videos.mdx diff --git a/versioned_sidebars/version-0.9.0-sidebars.json b/versioned_sidebars/version-0.9.0-sidebars.json index 9da5c6d87..49c445f8d 100644 --- a/versioned_sidebars/version-0.9.0-sidebars.json +++ b/versioned_sidebars/version-0.9.0-sidebars.json @@ -10,7 +10,7 @@ }, { "type": "doc", - "id": "tutorial-videos" + "id": "videos" }, { "type": "category",