Forth wurde von Charles H. Moore 1969 entwickelt und ist in erster Linie als Programmiersprache bekannt geworden. Forth ist aber nicht nur eine Programmiersprache, sondern gleichzeitig ein Betriebssystem und eine Entwicklungsumgebung zur Erstellung von Forth-Programmen. Daher nennt man ein tatsächlich implementiertes Forth auf einem Rechner auch ein Forth-System.
Die Vorgehensweise einer All-in-One-Lösung ist ein Sonderweg von Forth geblieben. Normalerweise werden die oben genannten Komponenten getrennt voneinander konzipiert und entwickelt.
Eine komplettere Abhandlung der Geschichte von Forth findet sich hier.
Das Forth-System ist als virtuelle Maschine realisiert. Wesentliche Datenstruktur in Forth ist der Stapel (engl. Stack). Ausdrücke werden in Forth in der umgekehrten polnischen Notation formuliert.
Forth benutzt zur Arbeit zwei Stapel, einen für Daten, den anderen (returnstack) für die Rücksprungadressen beim Verzweigen in Unterprogramme (Subroutinen). Programmcode wird in Forth durch die Definition von Worten (words) in einer Bibliothek (dictionary) abgelegt. Ein Forth-System besteht praktisch nur aus diesem Wörterbuch, wobei die Worte des Kernwortschatzes als Programmteile potentiell eine Doppelfunktion ausfüllen: Einmal regeln sie in ihrem niedergelegten Zusammenspiel die komplette interne Funktionalität des Programmiersystems selbst - einschließlich der präsentierten Benutzerschnittstelle, und gleichzeitig ist jedes einzelne Wort dem Programmierer zur allfälligen eigenen Verwendung für die geplante Anwendung zugänglich. Interaktiv lässt sich der Wortschatz Schritt für Schritt erweitern. Das soll heißen: Ein Forthsystem ist (bis auf den Kern) komplett in Forth programmiert, so dass es leicht auf neue Rechner und Betriebssysteme übertragen werden kann. Assemblercode (üblicherweise auch in Forth-Notation) gibt es nur in Worten, die die Anbindung an die Umgebung bewerkstelligen, oder in denjenigen, die das Arbeitstempo des Systems bestimmen.
Forth hat zwei wesentliche Eigenschaften, die es von vielen anderen Programmiersystemen seiner Zeit unterscheiden:
Alle Ausdrücke werden in umgekehrter polnischer Notation (UPN) beschrieben. „Umgekehrte polnische Notation“ klingt, als sei das eher kompliziert und unnatürlich, aber damit ist nichts anderes gemeint als beispielsweise Formulierungen wie:
Also ganz gewöhnlich alltagssprachlich wird erst das Ding genannt, mit dem man etwas tun kann („Wäsche“), und danach das, was man damit macht („waschen“).
Forth funktioniert nach dem Stapel-Prinzip. Wenn man zum Beispiel (5 + 3) * (7 + 2) in Forth ausrechnen will, gibt man folgende Sequenz ein:
Der abschließende Punkt sorgt für die Ausgabe des Ergebnisses. Wenn man den Punkt nicht angibt, verbleibt das Rechenergebnis auf dem Stapel. Die Auswertung des Forth-Ausdrucks beginnt mit dem Zeilenabschluss (Return).
| DUP | n1 n2 | -> | n1 n2 n2 | dupliziert das oberste Stack-Element |
| SWAP | n1 n2 n3 | -> | n1 n3 n2 | vertauscht die obersten beiden Stack-Elemente |
| ROT | n1 n2 n3 n4 | -> | n1 n3 n4 n2 | holt das dritte Stack-Elemente nach oben |
| OVER | n1 n2 n3 | -> | n1 n2 n3 n2 | kopiert das zweite Stack-Element |
| PICK | n1 n2 n3 2 | -> | n1 n2 n3 n1 | kopiert das angegebene (hier: 2 entspr. dritte) Stack-Element |
| DROP | n1 n2 n3 n4 | -> | n1 n2 n3 | entfernt das oberste Stack-Element |
Forth eignet sich für das interaktive Entwickeln von Steuerungssystemen. Da sind dann Programmpassagen möglich wie:
Die frühesten bekannten Anwendungen waren Steuerungen für Observatorien, denn die eingangs genannte Teleskopsteuerung wurde von vielen anderen Observatorien übernommen.
Ein Forth-Interpreter kann ressourcenschonend implementiert werden. Deshalb eignet sich die Sprache auch besonders gut für Microcontroller. Jüngste Entwicklung ist das Colorforth von Charles H. Moore. Ältere FORTH-Derivate sind das GraFORTH sowie das Messdatenanalyse-System ASYST..
Eine moderne Anwendung für Forth ist das Konzept der Open Firmware (IEEE-1275).
Programmiersprache | Betriebssystem
Forth | Forth | Forth | FORTH | Forth | Forth (langage) | Forth | FORTH | Forth | Forth | Forth | Forth (язык программирования) | Forth (programmeringsspråk) | Forth (мова програмування) | Forth
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Forth (Informatik)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world