Wieso RoboPro eine tolle Entwicklungsumgebung ist (Teil 5: Parallele Prozesse).

Eine der für mich beeindruckendsten Entdeckungen waren die parallelen Prozesse in RoboPro. 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 RoboPro: Fast beliebig viele Prozesse lassen sich in RoboPro 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 RoboPro-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.

Funkuhr in RoboPro

Funkuhr in RoboPro (Ausschnitt)

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…

Advertisements

kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: