Daten abspeichern im Wörterbuch

Eine interessante Variante in Forth sind die Wörter mit dem Komma.( , c, ,„ ) Sie speichern Daten in das Wörterbuch. Das Wörterbuch ist ein Bestandteil eines Forth-Systems, daß ich mir so vorstelle:

Der Stack ist ein Werktisch und das Dictionary ein großes Hochregal mit vielen Fächern. Daneben gibt es Tore für den Datenaustausch der Festplatte und dem Anwender über tastatur, Bildschirm und Drucker. Als viertes gibt es die Quellcode-Dateien, die das Hochregal mit „Werkstücken“(Daten) und „Werkzeugen“(Wörter) füllt.

Volksforth besitzt einen relativ komfortablen Editor, mit dem die Quellcode-Dateien gewartet werden können.

: anzeigen ( addr -- addr len ) count type ;

: daten ( anz addr -- ) 2 + swap begin dup 0> while 1 - 
       swap dup c@ + 1 + swap repeat   swap anzeigen ;


variable adresse1
," Maier " ," Wolfgang " ," Am Wall 4 " ," Manndorf "

Dieser Ausschnitt aus der Quellcode-Datei zeigt das Grundprinzip. Ähnlich der „außer-computerisierten“ Arbeit erzeugt der Nutzer als erstes eine Variable, hinter der die Daten gespeichert werden. Die Variable gibt bei Aufruf ihre Adresse zurück, woraus das Wort daten die Anfangsadresse des Datenfeldes berechnet und dieses dann anzeigt. Das ist möglich weil ,“ einen Counted-String im Wörterbuch abspeichert. Das ist eine Besonderheit in Forth, denn hier enthält das erste Byte die Länge des Stringes und danach folgen die Daten. In „C“ gibt es dagegen NULL-Strings, das sind Zeichenketten, die mit einer „0“ abgeschlossen werden. das Wort daten nutzt diese Struktur und „hangelt sich“ von Datenfeld zu Datenfeld. Somit erspart sich der Anwender den Entwurf der „klassischen Datenbankstruktur“

Allerdings ist noch der direkten Zugriffes auf das Datenfeld zu ermöglichen.