Einführung

Forth? Forth?? FORTH???

Ja, es gibt eine Programmiersprache namens Forth. Es gibt sie sogar schon sehr lange und sie ist immer noch sehr erfolgreich, auch, oder vielleicht gerade, weil sie sich so sehr von anderen Programmiersprachen unterscheidet. Zwei Dinge sind es vor allem, die sie von anderen Programmiersprachen unterscheidet:

  1. Forth ist stackorientiert. Der Stack (deutsch = Stapel) ist ein wesentliches Konstrukt und Merkmal der Sprache. Er wird im nächsten Kapitel eingehender vorgestellt.
  2. Programmieren in Forth ist gleichbedeutend mit Erweitern von Forth. Forth kennt 'von Haus aus' eine ganze Reihe von Wörtern. Wenn man in Forth programmiert, fügt man Forth neue Worte hinzu, die dann integraler Bestandteil von Forth werden. Das wird im übernächsten Kapitel behandelt.

Sicherlich werden dem einen oder anderen diese Konzepte von Forth zunächst ungewöhnlich und seltsam vorkommen; dies gilt besonders, wenn man vorher in einer anderen Programmiersprache programmiert hat. Aber genauso wie Lisp auch erst seltsam erscheint und dann immer mehr Spaß macht, ist es auch bei Forth. Daher sollte man einfach mal anfangen und dann sehen, wie man mit diesem Konzept von Programmiersprache zurecht kommt.

Ich bin sicher, dass der Forth-Virus zuschlägt.

Es gibt so viele Rechner und so viele Umgebungen. Ich kann nicht auf alle eingehen und für jede beschreiben, wie sie funktionieren. Ich gehe daher im Weiteren davon aus, dass sie an einem Rechner sitzen und Forth bei ihnen läuft. Forth kann im Interpretermodus laufen, was nichts anderes bedeutet, dass sie Befehle eingeben und sofort eine Antwort erhalten. Im Normalfall sollte das ausreichen. Bei größeren Beispielen kann es aber auch sinnvoll sein, den Sourcekode in eine eigene Datei zu packen und diese dann beim Start von Forth sofort zu laden. Auch wie das geht wird hier nicht beschrieben. Da muss ich sie leider auf Manualpages, Handbücher und Ähnliches verweisen. Aber lassen sie sich den Spaß dadurch nicht verderben.

Für diesen Text und seine Beispiele lang 'lina' vor. Ein ISO-Forth, das komplett nativ ist, also nicht auf C aufsetzt. Es entspricht weitestgehend dem ISO-Standard. Es ist zwar relativ einfach, aber zum Lernen der Sprache vielleicht gerade richtig.

Die Umgebung

Ist Forth erst einmal -- im interaktiven Modus -- gestartet, macht ihr Rechner gar nichts! Im Normalfall gibt es kein Eingabeprompt oder irgendetwas in dieser Art, sondern der Cursor steht einfach am Anfang der Zeile und das war es. Wenn sie etwas eingeben, dann sollten sie nur zwei Dinge wissen: Zum einen wird in Forth alles durch ein (oder mehrere) Leerzeichen getrennt und zum anderen wird es mit der Eingabetaste abgeschlossen.

Auch wenn hier nicht erklärt werden soll, was da im Inneren von Forth passiert, soll das schon einmal demonstriert werden. Wenn man die Zahlen '0', '1' und '2' eingeben will, dann kann man das folgendermaßen machen:

  0 1 2[RETURN]

Das [RETURN] steht hier für das Drücken der Eingabetaste und wird im weiteren weggelassen. Sobald sie die Eingabetaste gedrückt haben, erscheint hinter ihren Zahlen ein 'ok' und der Cursor wandert in die nächste Zeile und alles sieht wieder so aus, wie vorher:

  0 1 2  ok

Das 'ok' zeigt ihnen an, dass Forth wieder mit sich und der Welt im Reinen ist und dass es weiter gehen kann. Wenn sie Forth wieder verlassen wollen, dann geben sie 'BYE' ein und drücken wieder die Eingabetaste. Danach werden sie sich wieder in ihrer gewohnten Terminalumgebung wiederfinden.

Eine Bemerkung zum Schluss

Bevor es nun endlich losgehen soll, habe ich noch eine Bitte. Diese Seiten sind auf private Initiative entstanden und ich habe mich bemüht sie möglichst fehlerfrei und sachlich richtig zu gestalten. Bei einem Unterfangen von diesem Umfang ist es allerdings nicht möglich wirklich alle Fehler zu finden aund auszumerzen. Sollte ihnen ein Fehler auffallen, dann schimpfen sie nicht, sondern schicken mir eine Mail an fritztc@fritz.rmi.de und ich werde sie beantworten und den Fehler zu beheben.

Und noch eins: Dieser Text ist mein geistiges Eigentum. Ich untersage ausdrücklich seine Verwendung zu kommerziellen Zwecken, was auch für Teile dieses Textes gilt. Die private Nutzung und die Nutzung zu Schulungszwecken ist frei.