From 35997a82e51c5042138d08833cc55a53d26f1bc7 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 16 Mar 2026 11:39:38 +0100 Subject: [PATCH] Mon 16 Mar 11:39:34 CET 2026 --- doc/plx.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 doc/plx.md diff --git a/doc/plx.md b/doc/plx.md new file mode 100644 index 0000000..cfb7395 --- /dev/null +++ b/doc/plx.md @@ -0,0 +1,4 @@ +PLX is an extended programming language and a Virtual Machine (VM) for multi-tasking on embedded systems with very low resources (at least 32 kB ROM, 8 kB RAM). The VM is optimized on architecture level, but not on programming level (e.g., by using native machine code optimizations), providing high portability across different mirco-controllers and computer architectures. Although, not optimized on programming level, the PLX-VM outperforms standard python (3) implementations by at least 30% better computational performance. + +The PLX-VM consists of a source-to-Bytecode compiler, an extended task and event management system, networking support, and a Bytecode interpreter which can be executed step-wise. The stepping operation is mandatory to integrated the VM (or multiple VMs) in the main IO loop of the host system. The execution time of (most) VM instructions is known in advanced and cab be bound by an upper time limit. This feature enables (soft) real-time capable embedded systems. Multi-tasking is supported including task forking and locking. The PLX-VM provides semi-automatic memory management and a reset capability. A VM typically executes one main program and (optionally) temporarily short background programs. If we consider a distributed VM network, the entire VM networks executes a single program but with multiple control and data states (or different tasks), i.e., we consider the Single Program Multiple Data (SPMD) architecture model. +