<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Forth_%28Programmiersprache%29</id>
	<title>Forth (Programmiersprache) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Forth_%28Programmiersprache%29"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Forth_(Programmiersprache)&amp;action=history"/>
	<updated>2026-05-20T02:46:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Forth_(Programmiersprache)&amp;diff=11876&amp;oldid=prev</id>
		<title>imported&gt;Sotel: /* Beamtendeutsch ersetzt */</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Forth_(Programmiersprache)&amp;diff=11876&amp;oldid=prev"/>
		<updated>2025-06-06T11:01:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Beamtendeutsch ersetzt&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
|Name =&lt;br /&gt;
|Paradigma = [[Stapelspeicher|stapelorientiert]]&lt;br /&gt;
|Erscheinungsjahr = ca. 1970&lt;br /&gt;
|Entwickler = [[Charles H. Moore]]&lt;br /&gt;
|Typisierung = typenlos&lt;br /&gt;
|Implementierung =&lt;br /&gt;
|Dialekte = FORTH-79, FORTH-83, ANS&amp;amp;nbsp;FORTH, Forth-2012&amp;lt;ref&amp;gt;http://www.forth200x.org&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Beeinflusst_von = [[Burroughs Corporation|Burroughs]] Large Systems, [[Lisp]], [[APL (Programmiersprache)|APL]], [[Assemblersprache|Assembler]]&lt;br /&gt;
|Beeinflusste = [[STOIC (Programmiersprache)|STOIC]], [[Factor]], [[PostScript]], [[Reverse Polish LISP|RPL]], [[REBOL]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Forth&amp;#039;&amp;#039;&amp;#039; ist eine [[Imperative Programmierung|imperative]], [[Stapelspeicher|stackbasierte]] [[Programmiersprache]] in [[Umgekehrte polnische Notation|umgekehrter polnischer Notation (UPN)]], der [[Mathematische Notation#Postfixnotation|Postfixnotation]]. Ein &amp;#039;&amp;#039;Forth-System&amp;#039;&amp;#039; enthält ein [[Betriebssystem]] zum Ablauf und eine [[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]] zur Erstellung von Forth-Programmen. Daher nennt man ein tatsächlich [[Implementierung|implementiertes]] Forth auf einem Rechner ein &amp;#039;&amp;#039;&amp;#039;Forth-System&amp;#039;&amp;#039;&amp;#039;. Viele Versionen generieren heute, so wie in anderen Programmiersprachen auch, hochoptimierten [[Maschinencode]].&lt;br /&gt;
&lt;br /&gt;
== Entstehungsgeschichte ==&lt;br /&gt;
[[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 [[Makro]]sprache für Programme, die er in [[Fortran]], [[ALGOL]], [[PL/I]] und [[Assembler (Informatik)|Assembler]] schrieb. Die Computertechnik dieser Zeit veränderte sich gerade von [[Großcomputer]]n, die im [[Stapelverarbeitung|Batchbetrieb]] arbeiteten hin zu [[Minicomputer]]n, 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 &amp;#039;&amp;#039;FORTH&amp;#039;&amp;#039;. Ursprünglich sollte die Sprache &amp;#039;&amp;#039;FOURTH&amp;#039;&amp;#039; 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]] &amp;#039;&amp;#039;FORTH&amp;#039;&amp;#039; entschied.&amp;lt;ref&amp;gt;{{Internetquelle | url=http://worrydream.com/refs/Moore%20-%20Forth%20-%20The%20Early%20Years.pdf | titel=Forth – The Early Years | autor=Charles Moore | datum=1991 | zugriff=2016-05-05 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Eigentümlichkeit einer umfassenden Lösung aus Programmiersprache und Betriebssystem lässt sich gut aus der Entstehungsgeschichte&amp;lt;ref&amp;gt;[https://www.forth.com/resources/forth-programming-language/ Entstehungsgeschichte von Forth]&amp;lt;/ref&amp;gt; heraus erklären. Moore hatte zur Steuerung des 11-Meter-[[Radioteleskop]]s des [[National Radio Astronomy Observatory]] (NRAO) auf dem [[Kitt Peak]] in [[Arizona]] zwei [[Honeywell Serie 16|Honeywell]]-Rechner ohne geeignete [[Software]] zur Verfügung, einen 16&amp;amp;nbsp;kB&amp;amp;nbsp;[[DDP-116]] und einen 32&amp;amp;nbsp;kB&amp;amp;nbsp;[[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 [[Höhere Programmiersprache|Hochsprache]] und eine [[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]]. All diese Komponenten wurden innerhalb eines einzelnen Programms verwirklicht –&amp;amp;nbsp;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 [[Terminal (Computer)|Grafikterminal]] (Tektronix 4002A&amp;lt;ref&amp;gt;https://ub.fnwi.uva.nl/computermuseum//tek4002a.html&amp;lt;/ref&amp;gt;) 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 [[Astronom]]en 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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FORTH3.jpg|mini|Populäre Bücher über Forth aus der Zeit des [[Sinclair ZX81|ZX81]] und des [[Sinclair ZX Spectrum|Spectrum]]]]&lt;br /&gt;
&lt;br /&gt;
Die Vorgehensweise einer sogenannten „All-in-one-Lösung“ ist jedoch ein Sonderweg von Forth geblieben. Selbst Programmiersprachen wie [[Smalltalk (Programmiersprache)|Smalltalk]] oder [[Self (Programmiersprache)|Self]] gehen (in der Regel) nicht so weit, auch das Betriebssystem zu ersetzen. Obwohl dies möglich wäre, wünscht man sich meist [[Plattformunabhängigkeit|Portabilität]]. Auch die Programmiersprache [[Oberon (Programmiersprache)|Oberon]], die im Rahmen des [[Ceres (Computersystem)|Ceres]]-Systems entwickelt wurde, ist unabhängig von diesem erhältlich. Ähnlich wie Forth hatte nur noch das Programmiersprache/Betriebssystem-Paket [[L2 (Betriebssystem)|EUMEL]] und [[ELAN (Programmiersprache)|ELAN]] verfahren. Normalerweise werden die oben genannten Komponenten getrennt voneinander konzipiert und entwickelt.&lt;br /&gt;
&lt;br /&gt;
== Forth-System ==&lt;br /&gt;
Ein vollständiges Forth-System kann bereits mit wenigen [[Kilobyte]] Speicherbelegung realisiert werden. Diese Eigenschaft war zur Zeit der Entstehung außerordentlich wichtig, da die Rechner damals verhältnismäßig wenig [[Random-Access Memory|RAM]] zur Verfügung hatten. Außerdem ist der eigentliche Kern des Forth-Systems sehr klein und der Rest des Systems bereits selbst in Forth definiert. Eine Portierung des Forth-Systems auf andere [[Prozessor]]en ist dadurch erheblich einfacher. Diese positive Eigenschaft hat Forth in den späten 1970er Jahren eine relativ große Verbreitung beschert.&lt;br /&gt;
&lt;br /&gt;
Heute macht dies Forth zu einer [[Höhere Programmiersprache|Hochsprache]], die besonders zur Programmierung verschiedenster [[Mikrocontroller]] geeignet ist. Zur Entwicklung werden dabei aber kombinierte Systeme benutzt, bei denen der [[Zwischencode]] auf einem [[Hostrechner|Host-PC]] vorkompiliert und lediglich das Ergebnis im Mikrocontroller des [[Client]]s abgelegt wird. Dadurch können einige interaktive Funktionen des Forth-Systems entfallen und der [[Quelltext|Quellcode]] kann dabei umfassender [[Kommentar (Programmierung)|kommentiert]] werden.&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen Elemente der internen Forth-Architektur sind die beiden [[Stapelspeicher|Stapel]] (&amp;#039;&amp;#039;Data-Stack&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Return-Stack&amp;#039;&amp;#039;), ein kleiner Satz [[Register (Computer)|Register]], die gegebenenfalls unabhängig von der [[Hardware]] simuliert werden, und das &amp;#039;&amp;#039;Dictionary&amp;#039;&amp;#039;, eine [[Sprungtabelle]], die den [[Token (Übersetzerbau)|Token]] mit der jeweils aufzurufenden [[Funktion (Programmierung)|Funktion]] verknüpft. Das auf dem Stapel abgelegte Datenwort wird als &amp;#039;&amp;#039;Zelle&amp;#039;&amp;#039; bezeichnet, wobei diese 16, 32 oder 64 Bit groß sein kann. Überdies kann das &amp;#039;&amp;#039;Dictionary&amp;#039;&amp;#039; in mehrere &amp;#039;&amp;#039;Vocabularies&amp;#039;&amp;#039; nach Bedarf aufgeteilt werden. Das Forth-System selbst ist als [[virtuelle Maschine]] realisiert. Alle [[Anweisung (Programmierung)|Anweisungen]] und mathematischen Ausdrücke werden in umgekehrter polnischer Notation ([[Umgekehrte polnische Notation|UPN]]) formuliert. Dies ergibt sich einfach daraus, dass das Forth-System für jeden Eingabewert zunächst prüft, ob dieser im Dictionary vorhanden ist. Ist dies der Fall, wird die entsprechende Funktion aufgerufen, die dann auf alle bisher getätigten Eingaben zugreifen kann. Wenn der Wert nicht im Dictionary vorhanden ist, wird er als Zahlenwert oder [[Zeichenkette]] interpretiert. Nachfolgende Eingaben sind in beiden Fällen zu diesem Zeitpunkt noch nicht eingelesen und haben daher auf den Programmablauf noch keine Auswirkung. Man kann daher auch, wie zum Zeitpunkt der Entstehung üblich, den Eingabedatenstrom leicht durch ein sequentielles Medium, wie z.&amp;amp;nbsp;B. einen [[Lochkarte]]&amp;amp;shy;nstapel oder ein Magnetband, realisieren.&lt;br /&gt;
&lt;br /&gt;
Forth hat zwei wesentliche Eigenschaften, die es von vielen anderen Programmiersystemen seiner Zeit unterscheiden:&lt;br /&gt;
&lt;br /&gt;
* Forth war von Beginn an [[Public Domain]]&lt;br /&gt;
* Forth ist selbstkompilierend und erlaubt dabei dem Anwender direkten Zugriff auf den [[Compiler]], wodurch die Befehlsstruktur beliebig erweitert werden kann&lt;br /&gt;
&lt;br /&gt;
=== Programmierung in Forth ===&lt;br /&gt;
Die Programmierung in Forth unterscheidet sich grundlegend von anderen Sprachen. In Forth gibt es keinen Unterschied zwischen integrierten und programmierten Funktionen (sog. &amp;#039;&amp;#039;Wörtern&amp;#039;&amp;#039;), wohl aber einen funktionalen Kern von Wörtern (Primitiva), die direkt in Maschinencode implementiert sind. Es laufen auch keine unmittelbaren Routinen ab, stattdessen wird die Sprache um zusätzliche &amp;#039;&amp;#039;Wörter&amp;#039;&amp;#039; erweitert. Der Start eines Programms entspricht in Forth dem Aufruf eines &amp;#039;&amp;#039;Wortes&amp;#039;&amp;#039;, das somit die Hauptroutine des Programms darstellt. Da auch der [[Compiler]] dadurch erweitert wird, indem man &amp;#039;&amp;#039;Wörter&amp;#039;&amp;#039; definiert, die in der Entwicklungsumgebung ablaufen und damit den Zwischencode unmittelbar manipulieren, führt das zu einer Flexibilität, die nur mit wenigen anderen Hochsprachen zu erreichen ist.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel eines UPN-Ausdrucks ===&lt;br /&gt;
Für die Berechnung des [[Ausdruck (Programmierung)|Ausdrucks]] &amp;lt;code&amp;gt;(5 + 3) * (7 + 2)&amp;lt;/code&amp;gt; wird in Forth die folgende Sequenz eingegeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;5 3 + 7 2 + * .&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Verarbeitung des Ausdrucks erfolgt bereits beim Lesen. Der Eingabestring wird von Leerzeichen in &amp;#039;&amp;#039;Wörter&amp;#039;&amp;#039; unterteilt. Das Wort „5“ ist normalerweise nicht im &amp;#039;&amp;#039;Wörterbuch&amp;#039;&amp;#039; vorhanden, es wird als Zahl interpretiert, das heißt, ihr Wert (hier 5) wird auf den Value-Stack gelegt. Gleiches gilt für das Wort „3“. Das nun folgende Wort „+“ ist hingegen im &amp;#039;&amp;#039;Wörterbuch&amp;#039;&amp;#039; vorhanden. Es wird daher die entsprechende Funktion aufgerufen. Diese Funktion entfernt die obersten beiden Werte vom Stapel, addiert sie und legt das Ergebnis zurück auf den Stapel. Die kleine „+“-Funktion ist üblicherweise in der jeweiligen [[Maschinensprache]] realisiert. Auf dem Stapel liegt nun die Zahl 8. Das nächste Wort ist „7“, es wird die Zahl 7 auf den Stapel gelegt. Danach folgt das Wort „2“, hier landet die Zahl 2 auf dem Stapel. Als Nächstes wieder das Wort „+“, wodurch erneut die Additionsfunktion aufgerufen wird. Auf dem Stapel liegt nun zuoberst die Zahl 9, darunter die Zahl 8. Danach wird das Wort „*“ gelesen und im Wörterbuch gefunden; die zugehörige Funktion nimmt die beiden obersten Werte vom Stapel und legt ihr Produkt darauf. Die Multiplikationsfunktion kann je nach Forth-System als Maschinencode oder ihrerseits bereits in Forth implementiert sein. Das nächste gelesene Wort ist nun „.“. Dieses Wort nimmt den obersten Wert (nun die Zahl 72) vom Stapel und gibt ihn auf dem Anzeigegerät aus.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel π ===&lt;br /&gt;
Die [[Kreiszahl]] Pi kann wie folgt verwendet werden:&amp;lt;ref&amp;gt;{{Internetquelle&lt;br /&gt;
 |autor=&lt;br /&gt;
 |url=https://www.forth.com/starting-forth/5-fixed-point-arithmetic/&lt;br /&gt;
 |titel=Fixed Point Arithmetic&lt;br /&gt;
 |titelerg=&lt;br /&gt;
 |werk=&lt;br /&gt;
 |hrsg=Forth, Inc.&lt;br /&gt;
 |datum=&lt;br /&gt;
 |seiten=&lt;br /&gt;
 |format=&lt;br /&gt;
 |sprache=EN&lt;br /&gt;
 |abruf=2025-01-29&lt;br /&gt;
 |kommentar=&lt;br /&gt;
 |zitat=&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;10340 355 113 */ .&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;32484&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;: *Pi 355 113 */ ;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;10340 *Pi .&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;32484&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die [[Kreiszahl#_355113|Näherung]] &amp;lt;code&amp;gt;355÷113&amp;lt;/code&amp;gt; hat eine Genauigkeit von 7 Dezimalstellen.&lt;br /&gt;
&lt;br /&gt;
=== Online Forth Interpreter ===&lt;br /&gt;
Obige Beispiele können hier&amp;lt;ref&amp;gt;{{Internetquelle&lt;br /&gt;
 |autor=&lt;br /&gt;
 |url=https://www.jdoodle.com/execute-forth-online&lt;br /&gt;
 |titel=Forth Online Editor&lt;br /&gt;
 |titelerg=&lt;br /&gt;
 |werk=&lt;br /&gt;
 |hrsg=JDoodle&lt;br /&gt;
 |datum=&lt;br /&gt;
 |seiten=&lt;br /&gt;
 |format=&lt;br /&gt;
 |sprache=EN&lt;br /&gt;
 |abruf=2025-01-29&lt;br /&gt;
 |kommentar=&lt;br /&gt;
 |zitat=&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; interaktiv ausprobiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Wörter für Stack-Operationen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Stack&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| DUP || n1 n2 || → || n1 n2 n2 || dupliziert das oberste Stack-Element&lt;br /&gt;
|-&lt;br /&gt;
| SWAP || n1 n2 n3 || → || n1 n3 n2 || vertauscht die obersten beiden Stack-Elemente&lt;br /&gt;
|-&lt;br /&gt;
| ROT || n1 n2 n3 n4 || → || n1 n3 n4 n2 || holt das dritte Stack-Element nach oben&lt;br /&gt;
|-&lt;br /&gt;
| OVER || n1 n2 n3 || → || n1 n2 n3 n2 || kopiert das zweite Stack-Element&lt;br /&gt;
|-&lt;br /&gt;
| PICK || n1 n2 n3 &amp;#039;&amp;#039;2&amp;#039;&amp;#039; || → || n1 n2 n3 n1 || kopiert das angegebene &amp;#039;&amp;#039;(hier: 2 entspr. dritte)&amp;#039;&amp;#039; Stack-Element&lt;br /&gt;
|-&lt;br /&gt;
| DROP || n1 n2 n3 n4 || → || n1 n2 n3 || entfernt das oberste Stack-Element&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Implementierung und Hardwareschnittstelle ===&lt;br /&gt;
{{Siehe auch|Schnittstelle#Hardwareschnittstelle|titel1=Hardwareschnittstelle}}&lt;br /&gt;
Beispiel fig-FORTH auf der [[6502]]:&amp;lt;ref name=&amp;quot;FIG6502&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es werden nur folgende vier Routinen benötigt&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Stack&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| (KEY) || || → || n1 || liest ein Zeichen von der Tastatur&lt;br /&gt;
|-&lt;br /&gt;
| (EMIT) || n1 || → || || gibt ein (Steuer-)Zeichen aus&lt;br /&gt;
|-&lt;br /&gt;
| (?TERMINAL) || || → || n1 || Test, ob eine Taste oder BREAK gedrückt ist&lt;br /&gt;
|-&lt;br /&gt;
| (CR) || || → || || gibt einen [[Zeilenumbruch]] aus (Carriage Return/Line Feed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine Anbindung an einen [[Massenspeicher]] kann optional eingerichtet werden, entweder zu einem realen, physischen Gerät oder virtuell im Hauptspeicher.&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
Forth ist im Gegensatz zu Assembler eine [[Höhere Programmiersprache|Hochsprache]], die trotzdem hardwarenah und damit sehr schnell ausgeführt wird. Die Ausbaufähigkeit ist ein Grundprinzip von Forth; es müssen ohnehin die allermeisten Funktionen selbst programmiert werden. Es existieren mit dem [[RTX2010]] sogar Chipsätze für Raumfahrt-Anwendungen, auf denen Forth direkt ausgeführt werden kann.&lt;br /&gt;
&lt;br /&gt;
Forth eignet sich gut für die interaktive Entwicklung von [[Steuerungssystem]]en, wobei das Ergebnis der Lesbarkeit von [[Pseudocode]] nahekommen kann:&lt;br /&gt;
&lt;br /&gt;
# Ventil öffnen&lt;br /&gt;
# Alarm einschalten&lt;br /&gt;
# Türen verriegeln&lt;br /&gt;
# usw.&lt;br /&gt;
&lt;br /&gt;
Die frühesten bekannten Anwendungen waren Steuerungen für Radioteleskope und [[Sternwarte|Observatorien]] für [[Astronomie]] und [[Raumfahrt]]. Andere Anwendungen im technisch-wissenschaftlichen Bereich kamen erst später hinzu. Mit einem Einsatz auf der Raumsonde [[Galileo (Raumsonde)|Galileo]] war Forth 1989 eine der ersten Hochsprachen im Weltraum, bis dahin waren für solche Systeme überwiegend Assembler-Sprachen üblich.&amp;lt;ref&amp;gt;[https://history.nasa.gov/computers/Ch6-3.html &amp;#039;&amp;#039;Computers in Spaceflight: The NASA Experience – Chapter Six: Distributed Computing on Board Voyager and Galileo&amp;#039;&amp;#039;]. history.nasa.gov, abgerufen am 23. August 2019.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://www.forth.com/resources/space-applications/ &amp;#039;&amp;#039;Forth in Space Applications&amp;#039;&amp;#039;]. FORTH, Inc., abgerufen am 23. August 2019.&amp;lt;/ref&amp;gt; Auch die Raumsonde [[Philae (Sonde)|Philae]], bekannt durch die Landung auf einem Kometen 2014, war in Forth programmiert.&lt;br /&gt;
&lt;br /&gt;
== Forth-Implementierungen und abgeleitete Sprachen ==&lt;br /&gt;
Die Portierung von Forth auf den [[Apple II]] führte in den 1970er Jahren der Programmierer [[John T. Draper]] durch, damit entwickelte er die Textverarbeitung [[EasyWriter]]. Eine grafikfähige Erweiterung von Forth für den Apple II war GraFORTH.&amp;lt;ref&amp;gt;[https://www.virtualapple.org/docs/GraFORTH%20II%20Language%20Reference.pdf GraFORTH II Language Reference (PDF; 4,5&amp;amp;nbsp;MB)]{{Toter Link|url=https://www.virtualapple.org/docs/GraFORTH%20II%20Language%20Reference.pdf |date=2022-11 |archivebot=2022-11-02 05:58:40 InternetArchiveBot }}&amp;lt;/ref&amp;gt; ASYST war eine Erweiterung von Forth zum [[Messung|Messen]], [[Steuerungstechnik|Steuern]] und [[Regelungstechnik|Regeln]] für [[Personal Computer|PCs]].&amp;lt;ref&amp;gt;Campbell et al., „Up and Running with Asyst 2.0“, MacMillan Software Co., 1987&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Factor]] ist eine auf Forth aufbauende Programmiersprache, die sich jedoch stärker an die [[Anwendungsentwicklung]] orientiert als an der maschinennahen Funktionalität von Forth. Eine neuere Anwendung für Forth ist das Konzept der [[Open Firmware]] (IEEE-1275).&lt;br /&gt;
&lt;br /&gt;
Eine Weiterentwicklung von Forth ist [[Interpress]] von [[Xerox]], woraus sich wiederum die Seitenbeschreibungssprache [[Adobe Inc.|Adobe]] [[PostScript]] entwickelte. Das später ebenfalls von Adobe entwickelte [[Portable Document Format|PDF]] lehnt sich zwar stark an PostScript an (und könnte somit als Urenkel von Forth angesehen werden), ist jedoch im Gegensatz zu PostScript und Forth keine vollständige Programmiersprache.&lt;br /&gt;
&lt;br /&gt;
* [https://thebeez.home.xs4all.nl/4tH/ 4tH] Implementierung von Hans Bezemer, multiplattform&lt;br /&gt;
* [http://amforth.sourceforge.net/ amforth] – für den Atmel-ATMega-Mikrocontroller (GPL)&lt;br /&gt;
* [http://www.kiblerelectronics.com/myf/myf.shtml myforth für 8051 chips] – Tethered Forth&lt;br /&gt;
* [https://github.com/CharleyShattuck/myforth-arduino myforth für arduino]&lt;br /&gt;
* &amp;#039;&amp;#039;C-128-Forth&amp;#039;&amp;#039; – 1986 vom westdeutschen Holtkötter-Verlag veröffentlichter Forth-Dialekt für den 8-Bit-Heimcomputer [[Commodore 128#Forth|Commodore 128]]&amp;lt;ref&amp;gt;Manfred Wenzel: &amp;#039;&amp;#039;Forth am Commodore 128.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Commodore Welt.&amp;#039;&amp;#039; Band 3, Nr. 11 (1986), S. 56 f.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [https://github.com/meshula/Fusion-Forth Fusion-Forth für den Atari ST]&lt;br /&gt;
* [https://github.com/mynenik/kForth-32 kForth-32] – kleiner Forth-Interpreter, in C++ geschrieben (x86, 32-Bit)&lt;br /&gt;
* [https://code.google.com/archive/p/propforth/wikis/PropForth.wiki PropForth] – für den Parallax-Propeller-Mikrocontroller&lt;br /&gt;
* [[Reverse Polish LISP]] (RPL) – für HP48/49-Taschenrechner&lt;br /&gt;
* [http://sametwice.com/herkforth herkforth] – ein colorForth für Linux/PPC&lt;br /&gt;
* [http://home.hccnet.nl/a.w.m.van.der.horst/ciforth.html Computer Intelligence Forth] – ein in Assembler geschriebenes ISO-Forth&lt;br /&gt;
* [http://pfe.sourceforge.net/ PFE] – Portable Forth Environment&lt;br /&gt;
* [https://www.macupdate.com/app/mac/11376/imops Mops] – eine Entwicklungsumgebung für den Apple-Macintosh, basierend auf Forth&lt;br /&gt;
* [http://dev.ronware.org/p/reva/home Reva] – für x86-Prozessoren (32 Bit, multiplattformfähig)&lt;br /&gt;
* [http://spf.sourceforge.net/ SP-Forth] – OpenSource Forth für Win32 u. Linux&lt;br /&gt;
* [[STOIC (Programmiersprache)|STOIC]] – von [[Jonathan Sachs]] für [[Minirechner]] entwickelt und später auf [[CP/M]] portiert.&lt;br /&gt;
* [http://volksforth.sourceforge.net/ volksFORTH] – ein System der Forth Gesellschaft e.&amp;amp;nbsp;V.&lt;br /&gt;
* [http://win32forth.sourceforge.net/ Win32Forth] – Public Domain/[[GNU Lesser General Public License|LGPL]], für Windows (32 Bit)&lt;br /&gt;
* [https://github.com/shanecelis/delta-forth-net Delta Forth .NET] – Forth Compiler für die .NET-Plattform&lt;br /&gt;
* [https://www.forth.com/ SwiftFORTH und SwiftX] – professionelles FORTH für PC und Mikrocontroller&lt;br /&gt;
* [http://home.iae.nl/users/mhx/i4faq.html iForth] – Shareware, multiplattformfähiger Compiler für 32 u. 64 Bit&lt;br /&gt;
* [https://www.inventio.co.uk/cfdos.htm colorForth] – für den PC, Floppy-Image-Extracter/Source-Reader&lt;br /&gt;
* [https://bernd-paysan.de/bigforth.html bigFORTH] – x86 native code Forth mit MINOS GUI&lt;br /&gt;
* [https://bernd-paysan.de/gforth.html Gforth] – GNU Forth, multiplattformfähiger Interpreter (32 und 64 Bit)&lt;br /&gt;
* [https://www.mpeforth.com/ VFX Forth] – professioneller, plattformübergreifender Forth Compiler&lt;br /&gt;
* [http://retroforth.org/ RetroForth] – für DOS, Linux, FreeBSD, Windows oder standalone&lt;br /&gt;
* [http://www.softsynth.com/pforth/ pForth] – PD portables Forth in &amp;#039;C&amp;#039; für eingebettete Systeme oder Desktops&lt;br /&gt;
* [https://github.com/jkotlinski/durexforth DurexForth] – modernes OpenSource Forth für den [[Commodore 64|C64]]; ein Diskettenimage der jeweils aktuellen Version bekommt man [https://github.com/jkotlinski/durexforth/releases/latest hier.]&lt;br /&gt;
* [http://aminet.net/package/dev/lang/J4thDemo JForth] – Demo für Amiga&lt;br /&gt;
* fig-FORTH&amp;lt;ref name=&amp;quot;FIG6502&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |autor=William F. Ragsdale&lt;br /&gt;
 |url=https://web.archive.org/web/20221113014633if_/http://archive.6502.org/books/forth_interest_group/fig_forth_installation.pdf&lt;br /&gt;
 |titel=fig-FORTH INSTALLATION MANUAL&lt;br /&gt;
 |titelerg=(Implementation auf 6502)&lt;br /&gt;
 |werk=&lt;br /&gt;
 |hrsg=FORTH INTEREST GROUP&lt;br /&gt;
 |datum=1980-11&lt;br /&gt;
 |seiten=66&lt;br /&gt;
 |format=PDF&lt;br /&gt;
 |sprache=EN&lt;br /&gt;
 |abruf=2025-01-21&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Jupiter Ace]]&lt;br /&gt;
* [[Canon Cat]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Leo Brodie: &amp;#039;&amp;#039;Starting FORTH&amp;#039;&amp;#039;, 1981 ([https://www.forth.com/starting-forth/ aktualisierte Online-Edition])&lt;br /&gt;
* Leo Brodie: &amp;#039;&amp;#039;Thinking FORTH&amp;#039;&amp;#039;, Punchy Publishing, 2004, ISBN 978-0-9764587-0-8.&lt;br /&gt;
* Ronald Zech: &amp;#039;&amp;#039;Die Programmiersprache FORTH : eine kompakte Darstellung der Programmiersprache mit vielen Beispielen&amp;#039;&amp;#039;, 2. Auflage, Franzis, 1985, ISBN 3-7723-7262-7&lt;br /&gt;
* Thom Hogan: &amp;#039;&amp;#039;FORTH – Ganz einfach&amp;#039;&amp;#039;, übers. v. Karl-Heinz Büchner, Vieweg &amp;amp; Sohn, Braunschweig/Wiesbaden, 1985, ISBN 978-3-528-04292-9.&lt;br /&gt;
* C. Kevin McCabe: &amp;#039;&amp;#039;Programmieren mit FORTH&amp;#039;&amp;#039;, übers. v. Peter Monadjemi, Springer Vieweg, 1988, ISBN 978-3-322-90106-4.&lt;br /&gt;
* Edward K. Conklin, Elizabeth D. Rather: &amp;#039;&amp;#039;Forth Programmer&amp;#039;s Handbook&amp;#039;&amp;#039;, Forth Inc., 1997, ISBN 0-9662156-0-5.&lt;br /&gt;
* Elizabeth D. Rather: &amp;#039;&amp;#039;Forth Application Techniques&amp;#039;&amp;#039;, 5. Auflage, Forth Inc., Los Angeles, 2008, ISBN 1-4196-8576-7.&lt;br /&gt;
* Mitch Derick, Linda Baker: &amp;#039;&amp;#039;FORTH Encyclopedia – The Complete Forth Programmer&amp;#039;s Manual&amp;#039;&amp;#039;, 2. Ausg., Mountain View Press, Mountain View CA, USA, 1982, ISBN 978-99931-65-63-7.&lt;br /&gt;
* W. P. Salman, O. Tisserand, B. Toulout: &amp;#039;&amp;#039;FORTH&amp;#039;&amp;#039;, Editions EYROLLES, Paris 1983, engl. Übersetzung von M.J. Stewart, Macmillan Publishers Ltd. 1984, ISBN 978-0-333-36798-8.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.forth-ev.de/ Forth-Gesellschaft e. V. (Deutschland)]&lt;br /&gt;
* [http://www.ultratechnology.com/4th_1970.html FORTH – A Language for Interactive Computing], Charles H. Moores früheste Veröffentlichung zur Sprache (1970)&lt;br /&gt;
* [http://thinking-forth.sourceforge.net/ Thinking Forth Project]&lt;br /&gt;
* [https://www.zock.com/64er/8407/0011.html Forth – die etwas andere Programmiersprache], [[64’er]]-Bericht (1984)&lt;br /&gt;
* [https://hackerfunk.ch/index.php?id=66 Forth – Audiocast bei Hackerfunk.ch, Zürich]&lt;br /&gt;
* [https://www.complang.tuwien.ac.at/forth/family-tree/ Forth Family Tree]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4017981-3|LCCN=sh85050918}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Forth (Programmiersprache)| ]]&lt;br /&gt;
[[Kategorie:Konkatenative Programmiersprache]]&lt;br /&gt;
[[Kategorie:Programmiersprache mit einem ISO-Standard]]&lt;br /&gt;
[[Kategorie:Programmiersprache]]&lt;br /&gt;
[[Kategorie:Virtuelle Maschine]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sotel</name></author>
	</entry>
</feed>