|
Article on other languages:
|
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 ein Forth-System.
EntstehungsgeschichteDiese Eigentümlichkeit einer umfassenden Lösung lässt sich gut aus der Entstehungsgeschichte[1] heraus erklären. Moore hatte zur Steuerung des Teleskops einer Sternwarte einen Rechner ohne Software gekauft. Er hatte sich vorgenommen, alle notwendigen Komponenten selbst zu programmieren, die für eine (komfortable) Programmierung und den (komfortablen) Betrieb des Rechners notwendig sind. Hierzu gehören ein Betriebssystem, eine Hochsprache und eine Entwicklungsumgebung. All diese Komponenten wurden innerhalb eines einzelnen Programms verwirklicht – dem Forth-System. Die Vorgehensweise einer so genannten „All-in-One-Lösung“ ist ein Sonderweg von Forth geblieben. Selbst Programmiersprachen wie Smalltalk oder Self gehen (in der Regel) nicht soweit auch das Betriebssystem zu ersetzen. Obwohl dies möglich wäre wünscht man sich meist Portabilität. Auch die Programmiersprache Oberon, die im Rahmen des Ceres-Systems entwickelt wurde, ist unabhängig von diesem erhältlich. Normalerweise werden die oben genannten Komponenten getrennt voneinander konzipiert und entwickelt. Factor ist eine auf Forth aufbauende Programmiersprache, die sich jedoch stärker an die Anwendungs-Entwicklung orientiert als an der Low-Level-Funktionalität von Forth. Forth-SystemDas Forth-System ist als virtuelle Maschine realisiert. Die wesentliche Datenstruktur in Forth ist der Stapel (englisch stack). Ausdrücke werden in Forth in der umgekehrten polnischen Notation (UPN) formuliert. Forth benutzt zur Arbeit zwei Stapel: Den 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:
Beispiel eines UPN AusdrucksFür die Berechnung des Ausdrucks 5 3 + 7 2 + * . Die Verarbeitung erfolgt nach der Eingabe des Zeilenabschlusses (Eingabetaste).
Wörter für Stack-Operationen
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. Ideal ist ein kombiniertes System: Das Programm wird in Klartext mit allen Kommentaren auf dem PC geschrieben und gespeichert. Dieser Text ist oft einige hundert Kilobyte lang und würde nicht in den beschränkten Speicher eines Controllers passen. Nur die sehr kompakte Zusammenfassung davon (ein Befehl = ein Byte) wird zum Microcontroller übertragen und dort abgearbeitet. Ein praktisches Beispiel für kleinere Roboter findet man in ROBOprogy. Jüngste Entwicklung ist das Colorforth von Charles H. Moore. Ältere FORTH-Derivate sind das GraFORTH sowie das Messdatenanalyse-System ASYST. Freie Forth-Systeme
Eine moderne Anwendung für Forth ist das Konzept der Open Firmware (IEEE-1275). Weblinks
Quellen |
||||||||||||||||||||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net