Home
Impressum
Kontakt
Software-Engineering
Automotive
Smartcards
Hochgeschwindigkeitszüge
Forth
Linux
Sicherheit

Cornu: Forth

Vorab erwähnen wir hier der Vollständigkeit halber, daß der größte Teil des von uns entwickelten Programmcodes mittels automatischer Tools (AutoSAR, ASCET, etc.) generiert wurde, direkt gefolgt von C und C++.

Wir verwenden und schätzen C und C++, aber eben auch exotische Programmiersprachen wie Ruby und Forth.

Wir halten Forth für so besonders und so interessant, daß wir an dieser Stelle über Forth berichten.

Forth ist eine so gering verbreitete Programmiersprache, daß hier erst ein paar einführende Worte notwendig sind:

Viele seriöse Entwickler halten Forth für eine unseriöse Programmiersprache, mit der die Entwicklung „richtiger“ Programme undenkbar sei, weil es z.B. keine Typprüfungen gibt o.ä.

Wenn man aber Forth nicht als den Hammer betrachtet, der alle Probleme zu Nägeln macht, dann erkennt man den Nutzen der speziellen Fähigkeiten von Forth:

Jetzt werden seriöse Entwickler üblicherweise fragen, was man denn nun eigentlich mit Forth programmieren kann. Hier folgen einige Dinge, die der Autor dieser Webseite programmiert und produktiv für Kunden eingesetzt hat.

OODC

Objektorientierte Erweiterung zu Forth. Diese Erweiterung erlaubt es, Objekte im Speicher auch verteilt zu platzieren, z.B. Zähler im RAM und Konstanten im EEPROM.

Unit Test

Testmethode für Modultests von Softwarekomponenten, die in C programmiert sind. Dabei werden diese Komponenten z.B. in Microsoft Visual Studio als DLL übersetzt. Anschließend wird diese DLL in ein geeignetes Forth geladen, so daß die zu testenden C-Funktionen als Forth-Worte beretistehen. Der Tester verwendet dann die Forth-Kommandozeile als interaktive Shell, über die er diese C-Funktionen aufrufen und mit Parametern versehen kann. Die Methode ist gleichzeitig spielerisch und hochproduktiv. Ein besonders wertvolles Merkmal ist die herausragend gute Debugmöglichkeit auf C-Ebene. Ein weiteres ist die mögliche Persistenz von Daten über Tests hinweg.

CMS

Webmotor ist eine Software, die eine interne DSL (domain specific language) interpretiert, um den Navigationsbaum einer Webseite mit vorhandenen Dokumenten so zu verbinden, daß eine in sich vollständige Navigation ohne Javascript oder serverseitige Skripte entsteht. Die so erzeugten Seiten reagieren extrem schnell und haben sehr geringen Anforderungen an Bandbreite und Serverleistung.

Projektplaner

Diese Software erzeugt ein GANTT-Chart aus einem mittels interner DSL dargestellten Projektplanung. Im Gegensatz zu anderen einfachen Projekt-Tools ist hier die Datenhaltung von der Applikation getrennt, ein Fehler der Applikation beschädigt die abgelegten Daten nicht. Die Daten liegen in lesbarem Klartext vor und können gut versioniert werden.

Logsweep Audio-Analyser

Ein kleines Tool zur Erzeugung eines speziellen Sweeps zwecks Messung von Lautsprcherfrequenzgängen im Raum und FFT-Analyse dieses Sweeps. Der Sweep kann einmalig auf CD gebrannt werden und ersetzt so den Signalgenerator. Aufgrund der FFT ist ein synchroner Start von Wiedergabe und Auswertung nicht erforderlich.

CAN-Trace-Analysator

Wir haben einen Analysator für CAN-Traces im ASC-Format entwickelt, dessen DSL aus den Namen der CAN-Signale besteht. Aufgrund des einfachen und effizienten Parsers von Forth kann dieser Analysator sehr große Traces in sehr kurzer Zeit nach Ereignissen durchsuchen und auf Merkmale prüfen.