Forth (Programmiersprache)
Forth ist eine Programmiersprache und wurde von Charles H. Moore 1969 erfunden.Forth entstand aus einem Problem, das sich Moore eingebrockt hatte: er hatte zur Steuerung des Teleskops einer Sternwarte einen Rechner gekauft. Das war jedoch wirklich nur ein Rechner - also Hardware ohne jegliche Software!
Moore hat mit Forth ein Betriebssystem und eine Programmiersprache entworfen.
Eine komplettere Abhandlung der Geschichte von Forth findet sich hier
Forth ist sehr leicht auch als Maschine zu verstehen. Wesentliche Datenstruktur in Forth ist der Stack oder Stapel, die Notation von Ausdrücken entspricht der 'umgekehrten Polnischen Notation' UPN.
Forth benutzt zur Arbeit zwei Stacks, einen für Daten, den anderen für die Rücksprungadressen der Subroutinen. Diese Subroutinen werden in Forth Worte genannt und in einem Dictionary abgelegt. Ein jeweils konkret vorliegendes Forth-System besteht praktisch nur aus diesem Wörterbuch selbst, 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: Forth ist komplett in Forth programmiert, so dass es sehr leicht auf neue Rechner und Betriebssysteme übertragen werden kann. Assemblercode (üblicherweise auch in Forth-Notation) gibt es nur in denjenigen paar Worten, die die Anbindung an die Umgebung bewerkstelligen, und dann auch noch in denjenigen, die das Arbeitstempo des Systems bestimmen.
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:
Wäsche waschen Brot schneiden sieben addieren (oder als Formel: 7 +)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: 5 3 + 7 2 + * .
Der abschließende Punkt sorgt für die Ausgabe des Ergebnisses. Wenn man den Punkt nicht angibt, verbleibt das Rechenergebniss auf dem Stapel. Die Auswerung des Forth-Ausdrucks beginnt mit dem Zeilenabschluss (Return).
SWAP | n1 n2 n3 |
n1 n3 n2 | vertauscht die ersten beiden Stack-Elemente |
DUP | n1 n2 |
n1 n2 n2 | dupliziert das oberste Stack-Element |
ROT | n1 n2 n3 n4 |
n1 n3 n4 n2 | rotiert die obersten drei Stack-Elemente |
ROLL | n1 n2 n3 3 |
n3 n1 n2 | |
PICK | n1 n2 n3 2 |
n1 n2 n3 n1 | |
DROP | n1 n2 n3 n4 |
n1 n2 n3 | entfernt das oberste Stack-Element aus dem Stapel |
Forth eignet sich für das interaktive Entwickeln von Steuerungssystemen. Da sind dann Programmpassagen möglich wie:
Ventil öffnen Hupe einschalten usw...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 sehr ressourcenschonend implementiert werden. Deshalb eignet sich die Sprache auch besonders gut für Microcontroller. Jüngste Entwicklung ist das Colorforth von Charles H. Moore
Weblinks: