Eine neue Programmiersprache · Version 0.2

Programme,
die sich lesen
wie ein Satz.

Klarsatz ist eine kontrollierte natürliche Sprache: Jeder Befehl steht im Imperativ, jeder Satz endet mit einem Punkt. Was dasteht, ist genau das, was passiert — kein Klammerdickicht, keine englischen Abkürzungen.

Deutsche Satzmuster Läuft im Browser Ohne Dateizugriff
01 — Idee

Der Quelltext ist die Erklärung.

Klarsatz nimmt die Sprache ernst, in der wir ohnehin über Programme reden. Wer den Satz versteht, versteht den Befehl.

i.

Feste Satzmuster

Jeder Befehl folgt einem festen Muster, das sich vorlesen lässt. Der Parser erkennt Sätze, nicht Symbolfolgen — deshalb bleibt die Sprache eindeutig, obwohl sie nach Deutsch klingt.

ii.

Artikel sind erlaubt

Zeige die Summe. und Zeige Summe. sind dasselbe. Artikel, Umlautschreibung und Groß‑/Kleinschreibung werden überlesen, damit der Satz natürlich bleiben darf.

iii.

Fehler, die man versteht

Unbekannte Namen führen nicht zu einem Absturz, sondern zu einem Vorschlag: „Meintest du 'Summe'?“ Zugriffe hinter das Listenende sind immer ein klarer Fehler, nie ein stiller Fehlgriff.

iv.

Deutsche Zahlen

Kommazahlen erscheinen in der Ausgabe so, wie man sie hier schreibt: 3,5 statt 3.5. Texte werden nach deutscher Sortierreihenfolge verglichen — Äpfel vor Birnen.

v.

Klein genug zum Verstehen

Der Interpreter ist reines Python 3 ohne Fremdpakete und besteht aus überschaubaren Stufen: Lexer, Satzmuster‑Parser, Syntaxbaum, Interpreter. Kein eval, kein Nachladen von Code.

vi.

Zum Lernen gebaut

Klarsatz ist ein Lernprojekt — für alle, die das Programmieren nicht gleichzeitig mit einer Fremdsprache lernen wollen. Die Sprache erklärt sich beim Lesen.

02 — Erster Blick

Dasselbe Programm, zweimal erzählt.

Links, wie es die meisten Sprachen schreiben. Rechts, wie Klarsatz es sagt.

Gewohnt

for i in range(1, 31):
    if i % 15 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

Klarsatz

fizzbuzz.klar
Zähle von 1 bis 30 mit i:
    Wenn i durch 15 teilbar ist, zeige "FizzBuzz".
    Sonst wenn i durch 3 teilbar ist, zeige "Fizz".
    Sonst wenn i durch 5 teilbar ist, zeige "Buzz".
    Sonst zeige i.
Ende.
03 — Bausteine

Alles, was eine Sprache braucht.

Werte merken, entscheiden, wiederholen, zeichnen, sammeln, gliedern — in Sätzen, die man laut lesen kann.

Werte merken

Merke 5 als Zahl.
Setze die Zahl auf 7.
Erhöhe die Zahl um 1.

Merke "Wolfgang" als Name.
Verbinde "Hallo, " und Name zu Gruss.
Zeige Gruss.

Entscheiden

Merke 25 als Alter.

Wenn Alter mindestens 18 ist:
    Zeige "willkommen".
Sonst:
    Zeige "zu jung".
Ende.

Wiederholen

Wiederhole 3 Mal:
    Zeige "Klarsatz".
Ende.

Zähle von 1 bis 10 mit i:
    Zeige i.
Ende.

Sammeln

Erstelle eine Liste namens Einkauf.
Füge "Milch" zur Einkauf hinzu.
Sortiere Einkauf.
Für jedes Element in Einkauf:
    Zeige Element.
Ende.

Gliedern

Definiere Aufgabe Summe von a und b:
    Gib a plus b zurück.
Ende.

Zeige Summe von 3 und 4.

Zeichnen

Nimm die Farbe "gold".
Wiederhole 4 Mal:
    Gehe 120 Schritte vor.
    Drehe dich um 90 Grad rechts.
Ende.

Nachschlagen

Erstelle eine Tabelle namens Preise.
Trage "Apfel" mit 3 in Preise ein.
Trage "Kiwi" mit 5 in Preise ein.
Zeige Wert für "Apfel" in Preise.

Beschreiben

Ein Hund hat einen Namen und ein Alter.
Erschaffe einen Hund mit Name "Rocco"
    und Alter 5 als Waldi.
Zeige den Namen von Waldi.

Zur vollständigen Dokumentation

04 — Spielplatz

Ausprobieren, ohne etwas zu riskieren.

Der Spielplatz führt Klarsatz-Programme direkt im Browser aus — und zeigt Zeichnungen auf einer Leinwand gleich daneben. Nichts davon verlässt das Fenster.

Nichts wird geschrieben

Im Spielplatz arbeiten Lies und Schreibe auf einem Dateisystem im Arbeitsspeicher, das mit dem Lauf verschwindet. Es gibt keinen Weg von einem Programm auf eine Festplatte — weder auf deine noch auf den Server.

Eigener Arbeitsbereich

Der echte Interpreter läuft als Python im Browser — in einem abgeschotteten Hintergrundprozess ohne Zugriff auf die Seite. Kein Server führt Programme aus, nichts wird gesendet.

Endlosschleifen enden

Schritt- und Zeitgrenzen brechen Programme ab, die nicht von allein fertig werden. Hängt ein Lauf, wird der Hintergrundprozess beendet und neu gestartet.

Kein fremder Code

Klarsatz kennt kein eval, kein Nachladen und keinen Zugriff auf darunterliegende Funktionen. Ein Programm kann nur das, was in dieser Dokumentation steht.

Spielplatz öffnen

05 — Zum Mitnehmen

Klarsatz auf dem eigenen Rechner.

Reines Python 3, keine Fremdpakete, keine Installation: herunterladen, entpacken, loslegen.

Im Archiv steckt alles, was zum Ausprobieren nötig ist — und der gesamte Quelltext dazu, denn Klarsatz ist zum Nachlesen gebaut.

  • der Interpreter mit Prüfmodus, Formatierer und interaktiver Konsole
  • neunzehn Beispielprogramme vom Taschenrechner bis zum Galgenmännchen
  • die vollständige Sprachdokumentation zum Nachschlagen
  • eine Erweiterung für VS Code, die Klarsatz einfärbt
  • die Spielwiese dieser Seite, auch ohne Internet startbar
unzip klarsatz-0.2.0.zip
cd klarsatz-0.2.0
python3 -m klarsatz programme/03_taschenrechner.klar
Klarsatz 0.7.1 laden
Größe
239 kB als ZIP
Voraussetzung
Python 3.10 oder neuer
Läuft auf
Linux, Windows, macOS, Raspberry Pi
Lizenz
MIT — benutzen und weitergeben erwünscht

SHA256 6b3b6a90
vollständig in der Prüfsummendatei

06 — Stand

Wo Klarsatz gerade steht.

Version 0.2.0 — die Sprache ist vollständig benutzbar und wird weiter ausgebaut.

Fertig

Was schon trägt

Variablen und Konstanten, Rechnen und Vergleichen, Bedingungen, fünf Arten von Schleifen, Listen und Tabellen, Werkzeuge für Texte, Zeichnen mit Stift und Farben, eigene Aufgaben, Dinge mit Feldern und das Abfangen von Fehlern — dazu ein Prüfmodus, der Fehler findet, ohne das Programm auszuführen.

Damit beim Weiterbauen nichts unbemerkt zerbricht, prüft sich die Sprache selbst: 369 kleine Probeläufe kontrollieren nach jeder Änderung, ob noch alles genau das tut, was in dieser Dokumentation steht.

Grenzen

Was noch fehlt

Kein Dezimalkomma in der Eingabe — das Komma trennt Satzteile. Die Kurzform von Wenn führt genau einen Satz aus. Der Prüfer arbeitet ohne Datenfluss, kennt also keine Typen.

Geplant

Was kommt

Falls vorhanden: für Optionalwerte, Fähigkeiten im Sinne von Diese Aufgabe darf nur lesen, Lernstufen, die Befehle nach und nach freischalten, ein Tutorial mit lauffähigen Lektionen und später ein Bytecode-Compiler.

Hinweis zum Prototyp

Klarsatz ist ein Lern- und Hobbyprojekt. Der Interpreter begrenzt Schritte, Zeit, Speicher und Dateizugriff — eine geprüfte Sandbox ist er trotzdem nicht. Der Spielplatz dieser Seite geht deshalb den sicheren Weg und führt überhaupt nichts auf dem Server aus, sondern alles im Browser des Besuchers.