Lyx — Dokumentation
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.
Was Lyx ausmacht
| 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. |
Einstieg
| → 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„.
Bereiche
| 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 |
Schnellzugriff
Ich will …
- … anfangen → Erste Schritte
- … von Delphi umsteigen → Von Delphi nach Lyx
- … wissen, warum es abstürzt → Fehlersuche
- … von C umsteigen → Von C nach Lyx
- … testen → Testen
- … ein Programm ausliefern → Ausliefern
- … die richtige Unit finden → Welche Unit?
- … alle Units sehen → Standard Library
- … wissen, was die Sprache anders macht → Sprachreferenz
- … über das Netz sprechen (TCP, HTTP, TLS) → Netzwerk-Guide
- … Dateien, Verzeichnisse und I/O beherrschen → Dateisystem & I/O
- … ein PDF erzeugen oder lesen → PDF-Guide
- … Bilder laden und auswerten → Bildverarbeitung
- … Audio- oder Videodateien auswerten → Audio & Video
- … mit Zeichenketten, Umlauten und Emoji arbeiten → Text & Unicode
- … Daten in einer Datenbank ablegen (SQLite, PostgreSQL, MySQL, Redis) → Datenbanken & SQL
- … Konfiguration lesen oder Daten serialisieren → Daten & Serialisierung
- … Krypto verwenden → Kryptographie-Guide
- … Post-Quantum-Krypto → std.crypto.pqc
- … Safety-kritischen Code schreiben → DO-178C
- … ein Programm eindämmen (seccomp) → Capabilities
- … C-Bibliotheken einbinden → FFI
- … für eine andere Plattform kompilieren → Cross-Compilation
- … eine grafische Oberfläche bauen → Vega: erste Anwendung · alle Vega-Guides · Steuerelemente · LFM-Formulare
- … AWS, DigitalOcean oder GCP ansprechen → Cloud-Guide · std.cloud
- … Kassenbons TSE-signieren → kassensichv · kassensichv.manager
- … den Compiler selbst bauen → Compiler kompilieren
Zum Umgang mit dieser Dokumentation
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.
Struktur der Dokumentation
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).
