Eine der für mich beeindruckendsten Entdeckungen waren die parallelen Prozesse in ROBO Pro. Während meines Informatik-Studiums (ok, schon eine Weile her…) waren Transputer von INMOS eine gefeierte Innovation: Mit der Programmiersprache Occam ließen sich mit ihnen Programmabläufe komplett parallelisieren; sie „synchronisierten“ sich über Kanäle (Channels), über die sie Nachrichten (Werte) austauschen konnten. Der zentrale Nachteil dieses genialen Ansatzes: die Prozessoren waren (wenigstens für einen Studenten) unerschwinglich.
Heute genügen dafür der kleine TX und ROBO Pro: Fast beliebig viele Prozesse lassen sich in ROBO Pro quasi gleichzeitig ausführen. Das macht viele Programmabläufe wesentlich übersichtlicher – statt komplexer Abfragen kann man Funktionen, die voneinander unabhängig sind, komplett trennen. Die Programmierung ist einfach: jedes Startsymbol startet einen eigenen Prozess.
Ein einfaches Beispiel: Das ROBO Pro-Programm einer fischertechnik-Funkuhr lässt sich in Empfang und Auswertung des DCF77-Signals (in regelmäßigen Zeitabständen) und die Anzeige von Uhrzeit und Datum (auf dem TX- oder einem externen Display) auftrennen. Beide Programme können nun unabhängig voneinander realisiert werden – und machen das Programm erheblich übersichtlicher.

Die „Kommunikation“ zwischen solchen Prozessen kann – wenn erforderlich – über Variablen erfolgen, die als „Trigger“ fungieren: Sobald sie von einem Prozess auf einen bestimmten Wert gesetzt werden, lösen sie eine Aktion in einem anderen Prozess aus. Sehr elegant – und das auf einem ’simplen‘ ARM9-Prozessor…
(Weiter zu Teil 6: Debugging)
kommentieren