Dokumentation · Version 0.2 · Kapitel 01

Grundlagen

Klarsatz ist eine kontrollierte natürliche Sprache. Programme lesen sich wie deutsche Anweisungen, folgen aber festen Satzmustern. Dieses Kapitel erklärt, wie ein Satz gebaut ist, wie man etwas ausgibt und einliest und wie man Werte merkt.

Ein Satz ist ein Befehl

Die zehn Grundregeln

Jeder Klarsatz-Befehl ist ein Satz: Er beginnt mit einem Verb im Imperativ und endet mit einem Punkt. Zeilenumbrüche und Einrückung sind für den Interpreter bedeutungslos — sie dienen allein dem Lesen.

Der kleinste Satz
Zeige "Hallo Welt".
RegelBeispiel
Ein Satz ist ein Befehl und endet mit einem Punkt.Zeige "Hallo".
Befehle stehen im Imperativ am Satzanfang.Merke, Setze, Zeige
Blöcke beginnen mit : und enden mit Ende.Wiederhole 3 Mal: … Ende.
Artikel werden überlesen.Zeige die Summe. = Zeige Summe.
Füllwörter ebenso.Merke dir 5 als Zahl. = Merke 5 als Zahl.
Groß- und Kleinschreibung ist egal.Zähle = zaehle = ZAEHLE
ä ö ü ß gelten wie ae oe ue ss.Größe = Groesse
Namen werden nicht gebeugt.Zahl, nicht „der Zahl“
Zeilenumbrüche und Einrückung sind bedeutungslos.Einrückung dient nur dem Lesen.
Kommentar: Anmerkung: bis zum Zeilenende.Anmerkung: erklärt etwas.
Klammern gibt es nur für Rechnungen und Argumente.Wurzel von (a plus b)
Artikel und Füllwörter sind erlaubt, nicht nötig

Die Wörter der, die, das, den, dem, ein, eine, einen und ihre Geschwister werden beim Lesen übersprungen. Man darf sie schreiben, damit der Satz natürlich klingt — verlangt werden sie nie.

Dasselbe gilt für dir, dich, mir, mich, uns, sich und bitte. So darf man schreiben, wie man spricht:

Merke dir 5 als Zahl.
Bitte zeige mir die Zahl.
Drehe dich um 90 Grad nach rechts.

Im Spielplatz führt das Beispiel So darf man schreiben alle diese Freiheiten an einem Stück vor.

Werte: Zahlen, Texte, Wahrheit

Was in einem Programm vorkommen darf

Texte stehen zwischen "…" oder „…“. Zahlen schreibt man mit Punkt als Dezimaltrenner: 42, 3.14, negative direkt mit Vorzeichen: -5. Die Ausgabe erfolgt dagegen deutsch — aus 3.5 wird auf dem Bildschirm 3,5. Wahrheitswerte heißen wahr und falsch.

Werte und ihre Ausgabe
Zeige 42.
Zeige -5.
Zeige 3.5.
Zeige "Ein Text".
Zeige „Auch so geht es“.
Zeige wahr.
Kein Dezimalkomma in der Eingabe

Im Quelltext trennt das Komma Satzteile — deshalb muss eine Kommazahl dort mit Punkt geschrieben werden: 3.14, nie 3,14. Angezeigt wird sie anschließend trotzdem deutsch.

Ausgeben und Einlesen

Zeige, Frage und das verbindende „und“

Zeige schreibt eine Zeile. Mehrere Teile werden mit und aneinandergehängt — ohne Leerzeichen dazwischen, man setzt es also selbst.

Ausgabe zusammensetzen
Merke 12 als Summe.
Zeige "Hallo Welt".
Zeige "Summe: " und Summe.
Zeige "Von " und 1 und " bis " und 10 und ".".

Frage liest eine Eingabe ein und merkt sie unter einem Namen. Sieht die Antwort wie eine Zahl aus, wird sie zur Zahl — sonst bleibt sie ein Text. Ob das eine oder das andere vorliegt, lässt sich mit eine Zahl beziehungsweise keine Zahl prüfen.

Eingabe einlesen
Frage "Wie heißt du?" und merke die Antwort als Name.
Zeige "Hallo, " und Name und "!".

Frage "Wie alt bist du?" und merke die Antwort als Alter.
Wenn Alter keine Zahl ist:
    Zeige "Das war keine Zahl.".
Sonst wenn Alter mindestens 18 ist:
    Zeige "Willkommen.".
Ende.

Einzelne Buchstaben eines Textes holt man mit Element 1 von Antwort. Bei einer Antwort, die zur Zahl geworden ist, führt das zu einem Fehler — der sich mit Versuche abfangen lässt.

Im Spielplatz

Der Spielplatz hat keine Tastatureingabe während des Laufs. Antworten für Frage trägt man vorab in das Feld Eingaben ein — eine Antwort je Zeile, in der Reihenfolge, in der gefragt wird.

Werte merken

Merke, Setze und die kurzen Rechenbefehle

Merke legt einen Namen an oder überschreibt ihn. Setze ändert einen Namen, der bereits existiert — schreibt man sich dabei vertippt, meldet Klarsatz das, statt still eine zweite Variable anzulegen.

Anlegen und Ändern
Merke 5 als Zahl.                 Anmerkung: anlegen oder überschreiben
Merke für immer 3.14159 als Pi.   Anmerkung: Konstante, nicht mehr änderbar
Setze die Zahl auf 7.             Anmerkung: ändern, Name muss existieren

Erhöhe die Zahl um 1.             Anmerkung: ohne "um" wird um 1 erhöht
Erhöhe die Zahl.
Verringere die Zahl um 2.
Verdopple die Zahl.
Halbiere die Zahl.
Zeige die Zahl.

Merke "Wolfgang" als Name.
Verbinde "Hallo, " und Name zu Gruss.
Zeige Gruss.
BefehlWirkung
Merke Wert als Name.Legt den Namen an oder überschreibt ihn.
Merke für immer Wert als Name.Legt eine Konstante an.
Setze Name auf Wert.Ändert einen vorhandenen Namen.
Erhöhe Name um n.Zählt hinauf, ohne um um 1.
Verringere Name um n.Zählt hinunter, ohne um um 1.
Verdopple Name. · Halbiere Name.Mal zwei, geteilt durch zwei.
Verbinde a und b zu Name.Hängt zwei Werte zu einem Text zusammen.
Tippfehler werden erkannt

Benutzt ein Satz einen Namen, den es nicht gibt, nennt die Fehlermeldung den ähnlichsten vorhandenen: Meintest du 'Summe'? Das erspart die Suche nach der Stelle, an der sich ein Buchstabe verirrt hat.

Anmerkungen

Notizen für Menschen

Alles hinter Anmerkung: bis zum Zeilenende wird überlesen. Anmerkungen dürfen am Zeilenanfang oder hinter einem Satz stehen.

Anmerkungen im Quelltext
Anmerkung: Dieses Programm rechnet den Kreisumfang aus.

Merke für immer 3.14159 als Pi.
Merke 5 als Radius.
Merke 2 mal Pi mal Radius als Umfang.   Anmerkung: U = 2 · π · r
Zeige "Umfang: " und Formatiert von Umfang auf 2 Stellen.

Häufige Stolperfallen

Was Anfängern zuerst passiert

Klarsatz liest sich wie Deutsch — und genau das verführt zu Sätzen, die fast stimmen. Diese sechs Fälle erwischen fast jeden einmal.

FalschRichtigWarum
Wenn Befehl "fertig" ist:Wenn Befehl gleich "fertig" ist:Zwischen zwei Werte gehört immer ein Vergleichswort.
Definiere Aufgabe Zeige Preisliste:Definiere Aufgabe PreislisteAnzeigen:Ein Aufgabenname ist ein Wort — sonst gilt das zweite als Parameter.
Zeige "Hallo"Zeige "Hallo".Jeder Satz endet mit einem Punkt.
Wiederhole 3 Mal: Zeige "hi".Ende. dahinterWas mit : beginnt, endet mit Ende.
Zeige die Zahlen. (für Zahl)Zeige die Zahl.Namen werden nicht gebeugt — nur Feldnamen von Dingen dürfen das.
Wenn x größer als 3 ist, zeige "a". Zeige "b".Blockform mit : und Ende.Die Kurzform führt genau einen Satz aus.
Der Prüfmodus findet das alles

Statt zu raten, lässt man prüfen — ohne das Programm auszuführen:

python3 -m klarsatz --pruefe programm.klar

Im Spielplatz macht das der Knopf Prüfen. Er nennt Zeile, Spalte und meist auch gleich den richtigen Namen: „Meintest du 'Summe'?“