> Klarsatz — Programmieren lernen auf Deutsch (Programmiersprache im Browser) Zum Inhalt springen

Ein Sprachexperiment · Version 0.11.2

Programmieren lernen,
ohne vorher eine
Fremdsprache zu übersetzen.

Klarsatz ist eine deutschsprachige Programmiersprache zum Programmieren lernen: Die Befehle sind ganze deutsche Sätze. Sie läuft ohne Installation im Browser. Du lernst Variablen, Bedingungen und Schleifen — und führst dein erstes Programm später als Python weiter. Dahinter steckt die Frage, wie nah eine formale Sprache an deutsche Sätze heranrücken kann, ohne ihre Eindeutigkeit zu verlieren.

Eindeutig trotz Alltagssprache Läuft im Browser Führt weiter zu Python Quelltext auf GitHub
01 — Sieh es dir an

Dasselbe Programm, zweimal erzählt.

Dasselbe Programm zweimal: einmal in Python, einmal in Klarsatz. Die Konzepte sind identisch: eine Schleife, drei Bedingungen, eine Ausgabe. Verschieden ist nur, wie viel man vorher wissen muss, um die linke Spalte zu lesen.

Python

for i in range(1, 30 + 1):
    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.

Der Quelltext ist die Erklärung.In der Python-Fassung muss man erst lernen, was range, % und elif bedeuten. In der Klarsatz-Fassung steht es da. Was die Sprache sonst noch kann, steht weiter unten.

Klarsatz versucht nicht, das Programmieren einfacher zu machen. Es versucht, zwei Lernprobleme zeitlich auseinanderzuziehen: erst das Denken in Schritten — und dann, in Python, die fremde Schreibweise samt englischer Fachbegriffe. Die Annahme dahinter ist, dass beides zusammen für den Anfang zu viel ist.

Und jetzt du.

Kein Download, kein Konto, kein Seitenwechsel. Drück auf Ausführen — Klarsatz wird geladen und das Programm läuft hier, in dieser Seite.

Dein erstes Programm
Merke 5 als Zahl.
Erhöhe die Zahl um 3.
Zeige "Fünf plus drei ist " und Zahl und ".".

02 — Die Idee

Natürlich genug zum Lesen.
Streng genug zum Rechnen.

Klarsatz ist eine kontrollierte natürliche Sprache. Der Fachbegriff klingt sperrig, sagt aber genau, worum es geht: Die Sprache soll klingen wie Deutsch — und darf trotzdem nicht so vieldeutig sein wie Deutsch. Sie darf deutsch aussehen. Sie darf nicht deutsch raten.

Natürlichkeit

Artikel, Füllwörter, Schreibweise — alles egal
Zeige die Summe.
Merke dir die 5 als Zahl.
Zeige mir bitte "Hallo".

Wer den Satz laut vorliest, hat den Befehl schon erklärt. Artikel und Höflichkeitswörter werden überlesen, Groß‑/Kleinschreibung ist egal, Umlaute darf man als ae/oe/ue schreiben.

Kontrolle

Das Muster ist Pflicht
Wenn Punkte mindestens 10 sind:
    Zeige "Geschafft!".
Ende.

Jeder Satz muss auf ein festes Muster passen. Der Punkt am Ende ist Pflicht, gleich ist Pflicht, jeder Block braucht sein Ende. — und Sag Hallo. versteht Klarsatz nicht, so klar der Satz für uns auch ist.

Die Kontrolle ist kein Rückschritt gegenüber der Natürlichkeit — sie ist ihre Bedingung. Das Stichwort heißt Eindeutigkeit: Ein Parser, der aus echtem Deutsch erraten müsste, was gemeint ist, wäre unberechenbar — und Raten ist das Letzte, was ein Programm tun soll. Die Kunst liegt darin, den Spielraum innerhalb der Muster so groß zu machen, dass sich der Zwang nicht wie Zwang anfühlt.

03 — Lernen

Du lernst nicht Syntax.
Du baust dein erstes Programm.

Der Kurs fragt dich in jeder Lektion zuerst, was wohl herauskommt — dann probierst du es aus, dann veränderst du es. Wer nur liest, lernt Vokabeln. Wer vorhersagt, lernt Programmieren.

  1. 1Dein erstes ProgrammZeige
  2. 2Sich etwas merkenMerke
  3. 3EntscheidungenWenn
  4. 4Fehler sind normallesen statt erschrecken
  5. 5WiederholenZähle
  6. 6Dein erstes Spielalles zusammen
  7. 7Eigene BausteineDefiniere Aufgabe
  8. 8Viele WerteListen
  9. 9Daten ordnenKür
  10. 10Abschlussprojektohne Lösung
  11. 11Dasselbe in Pythonder Ausgang

Ein Fehler ist eine Nachricht an dich

Eine ganze Lektion macht absichtlich Programme kaputt und liest die Meldungen. Denn Klarsatz schimpft nicht, es hilft:

Merke 5 als Summe.
Zeige Sume.
Ich kenne 'Sume' nicht. Lege es zuerst mit 'Merke … als Sume.' an. Meintest du 'Summe'?

Zur Lektion über Fehler →

Nur die Wörter, die du kennst

Stell die Spielwiese auf die Stufe, bei der du gerade bist — dann kennt Klarsatz auch nur so viel. Wer zu früh nach einem Wort greift, liest:

Zeige 1 plus 1. Das kommt später: 'plus' lernst du in Stufe 2 (Rechnen) — du bist gerade auf Stufe 1.

Sieben Stufen, vom Zeigen bis zum Zeichnen.

Dazu ein Knopf Prüfen, der ein Programm durchliest, ohne es auszuführen — er findet Tippfehler, bevor sie jemanden aufhalten.

Mit Lektion 1 anfangen

04 — Zeichnen

Programmieren, das man sehen kann.

Ein zweiter Kurs in acht Lektionen — und es ist nicht etwa ein anderes Thema: Es sind dieselben Schleifen und Bedingungen wie im ersten Kurs — hier kann man ihnen beim Arbeiten zusehen.

Der Weg: Vielecke und die Regel dahinter, Farben und Strichstärke, Muster aus zwei ineinanderliegenden Schleifen, Zufall, eigene Bausteine — und am Schluss eine Anzeige, die sich bewegt.

Das Bild daneben ist kein Symbol. Es ist das, was dieses Programm malt:

Zwölf Quadrate, jedes um 30 Grad gedreht
Nimm die Farbe "gold".
Wiederhole 12 Mal:
    Wiederhole 4 Mal:
        Gehe 70 Schritte vor.
        Drehe dich um 90 Grad nach rechts.
    Ende.
    Drehe dich um 30 Grad nach rechts.
Ende.

Zum Zeichenkurs

Eine Rosette aus zwölf ineinandergedrehten Quadraten in Gold.
05 — Weiterlesen

Wer tiefer will, findet hier weiter.

Bis hierher ging es darum, was Klarsatz ist und wie man anfängt. Wer es genauer wissen, mehr sehen oder erst noch entscheiden will, findet hier weiter.

01

Wo Klarsatz steht

Eine schematische Karte zwischen Logo, Robot Karol, Scratch und Python — ohne Werturteil, mit Quellen.

Zur Einordnung

02

Was damit geht

Das Spiel des Lebens und ein Routenplaner mit Dijkstra — zwei Programme, die zeigen, dass „einfach zu lernen“ nicht „nur einfache Programme“ heißt.

Zu den Programmen

03

Für wen — und wie es weitergeht

Eine ehrliche Eignungstabelle, dazu die Brücke nach Python für alle, die weiterziehen.

Für wen Klarsatz taugt

04

Was man einwenden kann

Acht unbequeme Fragen, mit der ehrlichsten Antwort, die ich geben kann — nicht mit der günstigsten.

Zu den Fragen

06 — Die Sprache

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

Und ein paar Entscheidungen, die man erst beim Benutzen merkt:

i.

Feste Satzmuster

Jeder Befehl folgt einem festen Muster, das sich vorlesen lässt. Der Parser versteht nicht, was du meinst — er erkennt, welchem Muster dein Satz entspricht. Genau 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.

07 — Sicherheit

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.

60 000 verdorbene Programme ausprobiert
16 Arten, ein Programm zu zerstören
0 Abstürze, 0 Hänger in diesen Läufen

Wir haben versucht, es kaputtzumachen: Ein Werkzeug zerhackt die Beispielprogramme nach dem Zufallsprinzip und verfüttert die Trümmer an den Interpreter. Nichts ist abgestürzt, nichts hängen geblieben — jedes Mal kam eine ruhige deutsche Fehlermeldung.

Das heißt: in diesen Läufen ist nichts passiert — nicht, dass nichts passieren kann. Der Unterschied ist wichtig, und weiter unten steht, was der Prototyp deshalb trotzdem nicht ist.

Spielplatz öffnen

Wie das im Einzelnen abgesichert ist

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.

Erst prüfen, dann laufen

Neben Ausführen steht ein Knopf Prüfen. Er liest das Programm durch, ohne es zu starten, und zeigt Tippfehler und vergessene Namen an — hilfreich, wenn man noch unsicher ist. Auf der Kommandozeile heißt er --pruefe.

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.

Und woher wissen wir das?

Weil wir versucht haben, es kaputtzumachen. Ein eigenes Werkzeug nimmt die Beispielprogramme und zerhackt sie nach dem Zufallsprinzip: Es löscht Zeichen, vertauscht Wörter, verschiebt Zeilen, verbiegt die Einrückung, entfernt Punkte, ersetzt Zahlen durch 0, −1 oder eine mit 31 Stellen. Die Trümmer bekommt dann alles vorgesetzt, was mit Programmtext umgeht — er wird ausgeführt, geprüft, formatiert und nach Python übersetzt.

Erlaubt ist dabei nur eins: eine ruhige deutsche Fehlermeldung. Stürzt etwas ab oder bleibt hängen, zählt das als Treffer.

Jeder dieser Läufe lässt sich einzeln nachstellen — und einmal pro Woche läuft die Prüfung automatisch neu, mit anderen Zufallszahlen. Was das belegt und was nicht, steht in docs/SICHERHEIT.md.

08 — 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
  • zweiundzwanzig Beispielprogramme, vom Zahlenraten bis zum Routenplaner — dazu neun kleine Sprachbeispiele, je eines pro Thema. Zusammen sind das die 31, die auch in der Spielwiese zur Auswahl stehen
  • 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.11.2.zip
cd klarsatz-0.11.2
python3 -m klarsatz programme/03_taschenrechner.klar
Klarsatz 0.11.2 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

Lieber den Quelltext? Klarsatz liegt offen auf GitHub — mitlesen, abzweigen, Fehler melden, Sätze vorschlagen.

Quelltext auf GitHub
09 — Stand

Wo Klarsatz gerade steht.

Version 0.11.2. Ein bewusst begrenztes Experiment — „begrenzt“ ist dabei keine Entschuldigung, sondern eine Entscheidung: Was dem pädagogischen Ziel nicht dient, kommt nicht hinein. Was daraus geworden ist, steht hier — samt dem, was fehlt.

31
Beispielprogramme in der Spielwiese (22 große, 9 kleine)
19
Lektionen in zwei Kursen
12
Übungsaufgaben, die sich selbst prüfen
7
Lernstufen, die die Sprache schrittweise öffnen
0
Fremdpakete im Interpreter — reines Python 3
MIT
Lizenz, Quelltext vollständig offen
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.

Dazu die Lernhilfen: die sieben Lernstufen, zwei Kurse mit neunzehn Lektionen und die Übersetzung nach Python.

Und woher weiß man, dass beim Weiterbauen nichts zerbricht? Bei jeder Änderung spielt ein Testprogramm alle Beispiele durch, als säße ein Mensch davor. Beim Primzahlen-Programm tippt es der Reihe nach 1, abc, 2,5, 0 und 7 ein — auch den Unsinn, denn der muss ja abgefangen werden — und prüft dann, ob wirklich „7 ist eine Primzahl.“ dasteht und „Teiler von 12: [1, 2, 3, 4, 6, 12]“.

Genauso wird jedes Codebeispiel in den Kursen und in dieser Dokumentation ausgeführt: Steht darunter eine Ausgabe, muss genau die herauskommen. Weicht eine einzige Zeile ab, schlägt die Prüfung an und sagt, in welcher Datei und welcher Zeile. Dazu kommen die 60 000 verdorbenen Programme von weiter oben.

Grenzen

Was noch fehlt

Im Quelltext schreibt man Kommazahlen mit Punkt (3.5), weil das Komma dort Satzteile trennt — beim Antworten auf eine Frage darf man dagegen 3,5 tippen. Die Kurzform von Wenn führt genau einen Satz aus. Der Prüfer arbeitet ohne Datenfluss, kennt also keine Typen.

Geplant

Was kommt

Übungsaufgaben, die sich selbst prüfen. Falls vorhanden: für Optionalwerte. Fähigkeiten im Sinne von Diese Aufgabe darf nur lesen. Mehrere Sätze in der Kurzform von Wenn. Und irgendwann vielleicht ein Bytecode-Compiler — der steht ganz hinten, weil er dem Lernen nichts bringt.

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.

Fragen? Feedback?

Schreib mir — über Klarsatz, über einen Fehler, über eine Idee, oder wenn du es im Unterricht einsetzen willst.

[email protected]

Fehler und Vorschläge gern auch als Issue auf GitHub.