Files
TerminalBasic/README.md
Chili Palmer 1ce371b96b Leitbild und Performance-Anforderungen verankern
- README: Leitbild Re-Imagination (Stufe 1 originalgetreu, Stufe 2
  additive Anreicherung fuer CLI-/TUI-Tool-Entwicklung)
- PLAN: Leitplanken (Online-Doku als Primaerquelle, Performance als
  Anforderung: Instant-Compile, Projekt-Build in Sekunden, Executable
  ohne Toolchain), Stufe-2-Ideenspeicher, Benchmark-Aufgaben in Phase 2
- tbvm-design: Performance-Abschnitt (Single-Pass, inkrementell,
  typisierte Opcodes, Slot-Aufloesung zur Compilezeit, Messlatten)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 16:45:59 +02:00

70 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Terminal Basic
Eine plattformübergreifende **Re-Imagination** des letzten großen BASIC-Dialekts
für DOS (1992) — Sprache, Laufzeitbibliothek, Forms-Engine und IDE — in Rust,
mit [Ratatui](https://ratatui.rs) als Terminal-UI-Schicht.
> Dieses Projekt ist eine unabhängige Neuentwicklung und steht in keiner
> Verbindung zu Microsoft. Produktnamen Dritter werden bewusst nicht verwendet.
## Leitbild
Terminal Basic ist keine sklavische 1:1-Reimplementierung, sondern eine
spirituelle Neuauflage: ein BASIC, mit dem man heute **Terminal-Tools baut**
CLI-Werkzeuge ebenso wie TUI-Anwendungen. Der Weg dorthin:
1. **Erst die Re-Imagination:** gleiche UI/UX wie das Vorbild, gleicher
Sprachstandard, gleiche Standardbibliothek. Wer das Vorbild kannte, fühlt
sich sofort zu Hause; bestehende Programme laufen weitgehend unverändert.
2. **Dann die Anreicherung:** über die Zeit kommen bewusst Elemente außerhalb
des Vorbilds dazu (moderne Terminal-Fähigkeiten, Sprachkomfort,
Bibliotheken). Erweiterungen sind additiv und brechen den Kernstandard
nicht.
Wo Alt und Neu kollidieren, gewinnt die Plattform von heute — deshalb z. B.
durchgängig UTF-8 statt Codepage 437 und keine Emulation von DOS-Hardware.
## Ziele
- **Volle Sprachkompatibilität**: alle Sprachelemente des Dialekts —
Prozeduren (`SUB`/`FUNCTION`), benutzerdefinierte Typen, `GOSUB`,
`ON ERROR`/`RESUME`, Typ-Suffixe, feste und dynamische Arrays,
`PRINT USING`, `DATA`/`READ` usw.
- **Volle Library-Kompatibilität für die DOS-Oberflächenprogrammierung**:
die ereignisgesteuerte Forms-Engine mit allen Steuerelementen, Menüs,
Maus- und Tastaturereignissen, nachgebildet auf einem emulierten
80×25-Textbildschirm (16 Farben) über Ratatui. Bewusste Modernisierung:
durchgängig UTF-8/Unicode statt Codepage 437.
- **Plattformübergreifend**: läuft in Terminals unter Linux, macOS und Windows.
- **Compiler + VM**: der Compiler erzeugt Bytecode für eine eigene virtuelle
Maschine (TBVM); die Abwägung der Runtime-Optionen ist in
[PLAN.md](PLAN.md) dokumentiert.
- **IDE im Terminal**: Nachbildung der klassischen DOS-IDE mit Editor,
Formular-Designer, Direktfenster und Debugger.
## Aufbau des Workspace
| Crate | Inhalt |
|---|---|
| `tb-frontend` | Lexer, Parser, AST, semantische Analyse |
| `tb-vm` | Bytecode-Format, Codegenerator, virtuelle Maschine (TBVM) |
| `tb-runtime` | Laufzeitbibliothek: Strings, Mathematik, Datei-E/A, Datum/Zeit, Fehlercodes |
| `tb-ui` | Textbildschirm-Emulation und Forms-Engine auf Ratatui |
| `tb-cli` | `tbdosc`: Standalone-Compiler — wandelt Quellen und Projekte in binäre Ergebnisse um |
| `tb-ide` | `tbdos`: die integrierte Entwicklungsumgebung (TUI) zum Erstellen von Programmen |
## Status
Projektrahmen. Die Implementierungs- und Explorationsschritte sind in
[PLAN.md](PLAN.md) beschrieben; dort wird der Fortschritt fortgeschrieben.
## Bauen
```
cargo build
cargo run -p tb-cli # tbdosc — Standalone-Compiler
cargo run -p tb-ide # tbdos — IDE (TUI)
```
Benötigt wird nur eine aktuelle stabile Rust-Toolchain.