www.mikrocontroller.net

Forth

Forth ist eine stackorientierte Programmiersprache, die von Chuck Moore entwickelt und später auch in Hardware implementiert wurde.

Forthprogramme bestehen üblicherweise aus sehr vielen, sehr kurzen Unterprogrammen, was gut geschriebene Programme sehr übersichtlich macht. Weil Parameter über einen separaten Datenstack übergeben werden, beeinträchtigt diese Programmierweise die Ausführungsgeschwindigkeit im Gegensatz zu anderen Hochsprachen nicht wesentlich.

Der Grundumfang von Forth ist sehr elementar (Implementierungen samt Interpreter/Compiler haben meist wenige kByte), trotzdem werden auch riesige Projekte darin realisiert, da die Sprache extrem ihre eigene Erweiterung unterstützt. Es heißt, am Anfang eines Projektes würde aus Forth zunächst eine auf das Problem zurechtgeschnittene Sprache geschaffen. Es ist vor allem diese fremde Herangehensweise, die viele erfahrene Programmierer von dieser Sprache abschreckt.

Die besonderen Reize von Forth für die Mikrocontrollerprogrammierung liegen

  1. in der Kompaktheit des Codes (die heftige Wiederverwendung von kleinsten Codesegmenten kann man in anderen Hochsprachen aus Performancegründen nicht realisieren)
  2. in der Bandbreite von hardwarenahen Operationen bis zu komplexen Aufgaben
  3. in der Interaktivität: Über eine serielle Verbindung mit dem Controller kann man direkt den Interpreter auf dem µC nutzen, um direkte Hardwarezugriffe zu steuern oder Programmteile zu testen; es entfällt der Umweg über Debugcode->Compilieren->Flashen->Testen. Diesen Vorteil büßen viele µC-Implementierungen von Forth aber ein, indem sie die Compilierung in den Entwickler-PC verlagern; dabei sinkt zwar die Codegröße (Befehlsnamen etc. müssen nicht mehr im Flash stehen), aber es lässt sich nicht mehr interaktiv debuggen.

Durch diese Eigenschaften findet man Forth-Derivate an vielen Stellen, von HP-Taschenrechnern bis zu OpenFirmware. Die von Forth Inc. geschaffenen Chipimplementierungen (die also Forth als Maschinensprache verstehen und etwa beide Stacks in Hardware implementieren) gelten als effektivste Controller, die also das günstigste Verhältnis von erzielbarer Rechenleistung und Anzahl der Transistoren aufweisen.

Einer weiteren Verbreitung von Forth standen allerdings vor allem die späte Standardisierung und die Hardwareabhängigkeit des Codes im Wege.

Forth unterscheidet prinzipiell nicht zwischen Programm und Daten, was bei Implementierungen auf Prozessoren mit Harvard-Architektur wie AVR etwas hinderlich ist.

[Bearbeiten] Weblinks

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net