Forth Programmiersprache
Forth (Programmiersprache)
| Forth | |
|---|---|
| Paradigmen: | stapelorientiert |
| Erscheinungsjahr: | ca. 1970 |
| Designer: | Charles H. Moore |
| Entwickler: | Charles H. Moore |
| Typisierung: | typenlos |
| Dialekte: | FORTH-79, FORTH-83, ANS FORTH, Forth-2012[1] |
| Beeinflusst von: | Burroughs Large Systems, Lisp, APL, Assembler |
| Beeinflusste: | STOIC, Factor, PostScript, RPL, REBOL |
Forth ist eine imperative, stackbasierte Programmiersprache. Ein Forth-Systembeinhaltet ein Betriebssystem zum Ablauf und eine Entwicklungsumgebung zur Erstellung von Forth-Programmen. Daher nennt man ein tatsächlich implementiertes Forth auf einem Rechner ein Forth-System. Viele Versionen generieren heute, so wie in anderen Programmiersprachen auch, hochoptimierten Maschinencode.
Entstehungsgeschichte[Bearbeiten | Quelltext bearbeiten]
Charles H. Moore entwickelte Forth in den Jahren vor 1969 aus einem selbstgeschriebenen Mini-Interpreter. Dieser Interpreter enthielt bereits viele Eigenschaften der späteren Programmiersprache, war aber auf ein darunterliegendes Betriebssystem angewiesen. Moore benutzte ihn als Makrosprache für Programme, die er in Fortran, ALGOL, PL/I und Assembler schrieb. Die Computertechnik dieser Zeit veränderte sich gerade von Großcomputern, die im Batchbetrieb arbeiteten hin zu Minicomputern, die auch interaktives Arbeiten zuließen. 1968 schrieb Moore neben seiner eigentlichen Arbeit für einen IBM-1130-Minicomputer schließlich ein Schachprogramm, das er zuvor in Algol kodiert hatte, in seine Programmiersprache um. Das Schachprogramm war dadurch deutlich einfacher zu portieren und Moore nannte seine Sprache nun das erste Mal FORTH. Ursprünglich sollte die Sprache FOURTH heißen, weil sie eigentlich für die Computer der vierten Generation vorgesehen war, welche erwartungsgemäß als Mikrocomputer vertrieben wurden. Das Betriebssystem, auf dem Moore programmierte, ließ jedoch nur Dateinamen mit einer Länge von fünf Buchstaben zu, weshalb er sich für das Homophon FORTH entschied.[2]
Die Eigentümlichkeit einer umfassenden Lösung aus Programmiersprache und Betriebssystem lässt sich gut aus der Entstehungsgeschichte[3] heraus erklären. Moore hatte zur Steuerung des 11-Meter-Radioteleskops des National Radio Astronomy Observatory (NRAO) auf dem Kitt Peak in Arizona zwei Honeywell-Rechner ohne geeignete Software zur Verfügung, einen 16 kB DDP-116 und einen 32 kB H316. Er hatte sich vorgenommen, alle notwendigen Komponenten selbst zu programmieren, die für eine komfortable Programmierung und den sicheren Betrieb der Rechner notwendig sind. Hierzu gehören ein Betriebssystem, eine Hochsprache und eine Entwicklungsumgebung. All diese Komponenten wurden innerhalb eines einzelnen Programms verwirklicht – dem Forth-System. Beide Computer waren für die Steuerung des Teleskops und seiner wissenschaftlichen Instrumente verantwortlich, sie überwachten die Positionierung und die Nachführung, das Sammeln und Aufzeichnen der Daten auf Magnetband, und unterstützten ein interaktives Grafikterminal (Tektronix 4002A[4]) auf dem die Astronomen die aufgezeichneten Daten analysieren und als Hardcopy ausdrucken konnten. Der Multitasking-Charakter des Systems erlaubte den gleichzeitigen Ablauf dieser Funktionen, ohne dass dabei Störungen oder Laufzeitkonflikte auftraten. Insgesamt funktionierte das System so gut, dass Astronomen aus der ganzen Welt sich dafür interessierten und eine Kopie haben wollten. Seine Anwendung verbreitete sich schnell, und 1976 war Forth als Standardsprache durch die Internationale Astronomische Union angenommen.
Die Vorgehensweise einer sogenannten „All-in-one-Lösung“ ist jedoch ein Sonderweg von Forth geblieben. Selbst Programmiersprachen wie Smalltalk oder Self gehen (in der Regel) nicht so weit, 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. Ähnlich wie Forth hatte nur noch das Programmiersprache/Betriebssystem-Paket EUMEL und ELAN verfahren. Normalerweise werden die oben genannten Komponenten getrennt voneinander konzipiert und entwickelt.
Comments
Post a Comment