Vom Buchstabe zur Sprachgenerierung

Der Sprachwissenschaftler François Conrad führt den harten Klang der deutschen Sprache unter anderem auf die Silbenstruktur des Deutschen zurück. Diese Aussage bietet sich an, um ein einfaches Computerprogramm zu schreiben, welches mittels einer Menge von Buchstaben Morpheme (Laute mit Bedeutung) bildet und daraus Wörter (und Sätze) zusammensetzt.

Hauptbildschirm des mit Snap! geschriebenen Programms: Am oberen Bildrand sind einige Listen zu sehen, welche die Zufallsgenerierung ermöglichen. Unten rechts sind die Werte einiger im Programm verwendeten Variablen sichtbar.

Bei der Programmierung des Sprachengenerators können folgende informatorischen Konzepte eingesetzt werden:

  • Variablen (und Listen),
  • Schleifen,
  • Funktionen (wiederkehrende Programmblöcke).

Bevor man mit der Programmierung beginnt, ist es lohnenswert, sich den Programmablauf vor Augen zu führen.

Flowchart des Programms
Das Flussdiagramm zeigt den Ablauf des Programms. Zwei ineinander verschachtelte Schlaufen erzeugen zuerst einzelne Wörter und dann ganze Sätze.

In einem ersten Arbeitsschritt sollen Morpheme (bedeutungstragende Laute gebildet und zu Wörtern zusammengesetzt werden. Dazu werden Konsonanten und Vokale nach vorgegebenen Regeln (im Programm die morphemes-Liste) aneinandergereiht. Die Anzahl der gebildeten Morpheme bestimmt die Wortlänge.

Das gleiche Verfahren wenden kann dann auch für die Bildung von ganzen Sätzen verwendet werden.

Um das Programm etwas attraktiver zu gestalten, werden die Sätze mit einer Erweiterung von Snap! in gesprochene Sprache umgewandelt.

Das hört sich dann beispielsweise so an:

Natürlich ist die Ausgabe abhängig von den generierten Zeichenketten und der Einstellung der Sprachausgabe.

Das Programm im Detail

Das Programm besteht aus einem Anfangsblock und einer einer bedingten Anweisung, welche immer dann ausgeführt wird, wenn die Leertaste (space) gedrückt wird.

Code des Hauptprogramms in Snap!
Einmal abgesehen von der Initialisierung der Variablen, kann das eigentliche Programm in Snap! mit wenigen Zeilen geschrieben werden.

Die eigentliche Schleife wurde in einen sogenannten „warp“-Block eingefügt, weil damit dieser Programmteil schneller läuft. Ansonsten kann der Ablauf des Programms Schritt für Schritt studiert werden, was vor allem bei der Fehlersuche hilfreich ist.

Abgesehen vom Hauptprogramm kommen noch zwei Funktionen zum Einsatz. Die mehrfach verwendete Funktion randomitem() ist äusserst einfach gehalten:

randomitem() wählt ein zufälliges Element aus einer Liste aus.

Etwas komplexer ist die Funktion zur Generierung der einzelnen Morpheme:

buildmorph() generiert einzelne Morpheme. Dabei verwendet die Funktion die vorgegebene Morphem-Struktur, z.B. CV oder CVC.

Die Morpheme werden also aus einzelnen Konsonanten (C) und Vokalen (V) zusammengesetzt, je nachdem an welcher Stelle eines einzelnen Morphems sich die for-Schleife gerade befindet.

Verwendung im Unterricht

Im Medien- und Informatikunterricht der Sekundarstufe I stehen jeweils im 1. und 3. Schuljahr je eine Jahreslektion zu Verfügung. Deshalb lohnt es sich nicht, Schülerinnen und Schüler das ganze Programm selbständig erarbeiten zu lassen. In Snap! ist es aber möglich, Programmvorlagen zu Verfügung zu stellen, auf denen die Lernenden dann aufbauen können. Je nach Schwerpunkt kann dann ein anderer Teil des Codes ergänzt oder erweitert werden.

Läuft das Programm erst einmal, kann es im Sprachunterricht zum Einsatz kommen, um die Struktur verschiedener Sprachen auf spielerische Weise zu entdecken. Welche Elemente müssen vorgegeben werden, damit der Computer „Italienisch“, „Tamil“ oder „Polnisch“ erzeugt? Die Lernenden können dazu Hypothesen aufstellen und diese anschliessend in kleinen Experimenten überprüfen.

Möglich wäre auch eine Erweiterung zu einer Art Gedichtgenerator für künstliche Sprachen. Für Schülerinnen und Schüler der Sekundarstufe II könnte die Herausforderung darin liegen, das Programm in Hinblick auf eine künstliche Grammatik zu erweitern.

Quellen:

Conrad (2019). Warum klingt das Deutsche so (schön) hart?

Mermaid Live Editor (erzeugt Flussdiagramme aus Textdateien)

Online-Editor der Programmiersprache Snap!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert