Lyx ist eine systemnahe Programmiersprache für eingebettete Systeme, sicherheitskritische Software (DO-178C) und Anwendungen, die nah an der Maschine bleiben sollen. Der Compiler ist selbst-hostend — er ist in Lyx geschrieben und übersetzt sich selbst — und erzeugt statisch gelinkte Binaries ohne Laufzeitumgebung.
unit main;
import std.io;
fn main(): int64 {
PrintLn("Hallo Lyx");
return 0;
}
lyxc hello.lyx -o hello && ./hello
Ergebnis: eine statisch gelinkte ELF-Datei von rund 100 KB, ohne dynamische Abhängigkeiten — kein Interpreter, keine libc-Pflicht, kein Garbage Collector.
| Eigenschaft | Bedeutung im Alltag |
|---|---|
| Explizit statt implizit | Keine impliziten Typumwandlungen, kein versteckter Kontrollfluss. Jede Umwandlung steht als as im Code. |
| Ein Übersetzungsschritt | lyxc ist Compiler und Linker zugleich — keine Objektdateien, keine Linker-Flags, keine Build-Datei nötig. |
| Ohne Fremdabhängigkeiten | Die Standardbibliothek ist vollständig in Lyx geschrieben oder ruft POSIX-Syscalls direkt. Externe Bibliotheken (OpenSSL, ALSA, mpg123, Qt5) sind optional und werden ausdrücklich eingebunden. |
| Speicher von Hand | Stack und Heap sind getrennt, new/dispose und alloc/free liegen beim Entwickler. Kein GC bedeutet vorhersagbare Laufzeit. |
| Safety als Sprachmittel | Range-Typen, limit(N) an Schleifen, @dal-Stufen, @stack_limit und WCET-Nachweise gehören zur Sprache, nicht zu einer Bibliothek. |
| Zero-Privilege-Modell | @capabilities beschreibt, was ein Programm darf; daraus entsteht ein seccomp-Filter. Was nicht deklariert ist, geht nicht. |
| Breite Standardbibliothek | 421 Units — von Dateisystem und Netzwerk über Krypto, PDF und Bildformate bis Cloud-APIs, EDI, HL7 und PCI-Hardwarezugriff. |
| → Erste Schritte | Installation, Hello World, erstes eigenes Programm, die Grundkonzepte in der richtigen Reihenfolge |
Wer schon programmieren kann und nur die Eigenheiten sucht: Sprachreferenz beginnt mit „Lyx in zehn Sätzen„.
| Bereich | Umfang | Inhalt |
|---|---|---|
| Sprachreferenz | 25 Seiten | Syntax, Typsystem, Kontrollfluss, Module, OOP, Fehlerbehandlung, Speicher, Threads, FFI, Capabilities, ABI |
| Standard Library | 421 Units | I/O, Netzwerk, Krypto, Datenbanken, PDF, SVG, Bild, Audio/Video, Hardware (GPIO, USB, Bluetooth, PCI), Cloud, EDI, HL7, KassenSichV, Blockchain … |
| Guides | 40 Guides | Aufgabenorientiert: Welche Unit? · Fehlersuche · Umstieg von Delphi · Netzwerk · Dateisystem & I/O · Datenbanken · Krypto · Medien · Cloud · Aerospace/DO-178C · RTOS |
| Tools & Compiler | 8 Seiten | Alle lyxc-Flags, Compiler selbst bauen, lbfdump, Paketmanager lpm samt Registry-Protokoll und Betrieb |
| Vega VCL | 153 Seiten | Oberflächen in Lyx: 54 Steuerelemente, 54 Unit-Referenzen, Backends (X11, Win32, Null), LFM-Formularformat, Themes, Werkzeuge — eigenes Repository lyx-vcl |
Ich will …
Die Warnkästen sind Messwerte. Wo eine Seite ein fehlendes oder fehlerhaftes Verhalten beschreibt, wurde das gegen eine benannte Compiler-Fassung geprüft und trägt meist die Issue-Nummer. Steht dort „seit lyxc 1.0.17C“, ist der Punkt behoben; ein Defekt ohne Versionsangabe gilt zum genannten Prüfstand noch. Beispiele sind übersetzt und ausgeführt, nicht abgeschrieben.
Verbindlich für die Sprache selbst ist die Grammatik ebnf.md im Compiler-Repository. Weicht eine Seite hier davon ab, gilt die Grammatik — und die Abweichung gehört gemeldet.
lyx_-_programmiersprache/
├── start.txt ← diese Seite
├── erste-schritte.txt ← Einstieg für neue Nutzer
├── sprache/ ← Sprachreferenz (25 Seiten)
├── units/ ← Standard Library (297 Referenzseiten)
├── guides/ ← Themenführer, aufgabenorientiert (30 + 4 DO-178C)
└── tools/ ← Compiler und Werkzeuge (6 Seiten)
Letzte Aktualisierung: 2026-08-30 · geprüfter Compilerstand: lyxc 1.1.14A — Schalter neu gemessen, Projektdatei *.lpf und std.theorem123 aufgenommen
Codebeispiele geprüft: gegen lyxc 1.2.5C übersetzt (Prüflauf 2026-09-08 über die gesamte Doku: 574 Vollprogramme, 0 echte Fehler; zusätzlich 5159 Aufrufe gegen die pub fn-Signaturen in aurum/std gehalten, 0 Abweichungen).