Distributed Higher Order Processes

Georg Schied, Klaus Barthelmann

Parallele Prozesse höherer Ordnung

DHOP (Distributed Higher-Order Processes) ist eine experimentelle Programmiersprache, die die mächtigen Konzepte moderner funktionaler Sprachen, wie z.B. Funktionen höherer Ordnung, statische Typprüfung, Polymorphie und Typinferenz, mit Möglichkeiten zur explizit nebenläufigen Programmierung mittels kommunizierender Prozesse kombiniert. Prozesse und Kanäle können dynamisch generiert werden. Prozesse selbst sind `higher-order', d.h. sie sind Werte erster Ordnung, die, wie alle anderen Werte auch, an andere Prozesse gesendet und bei Funktionsaufrufen als Parameter verwendet werden können. Die Verbindungsstruktur zwischen den Prozessen kann dynamisch verändert werden, indem Känale an andere Prozesse weitergesendet werden.

Eins-zu-eins-Kanäle und lineare Typen

Während in vergleichbaren Sprachen (z.B. Facile, Concurrent ML, Erlang) beliebig viele Prozesse auf den gleichen Kanal zugreifen können, wird in DHOP gefordert, daß jedem Kanal genau ein Sende- und ein Empfangsprozeß zugeordnet sind. Dies bietet nicht nur zusätzliche Sicherheit gegenüber unbeabsichtigten Prozeßinteraktionen, sondern vereinfacht auch die Implementierung der Interprozeßkommunikation. Könnten allerdings Kanäle uneingeschränkt an andere Prozesse gesendet werden, ginge diese eindeutige Zuordnung verloren. Für DHOP wurde deshalb ein geeignetes, statisch prüfbares Typsystem entwickelt, das auf sog. linearen Typen aufbaut und ermöglicht, Kanäle als Kommunikations- und Funktionsparameter oder als Komponenten von Datenstrukturen zu verwenden, trotzdem aber sicherstellt, daß die eindeutige Zuordnung zu einem Sender und einem Empfänger erhalten bleibt.

Aktuelle Arbeiten

Im Laufe des Jahr 1996 wurden eine erste lauffähige Implementierung des Compilers für Monoprozessormaschinen fertiggestellt. Untersuchungen ergaben, daß trotz des prototypischen und relativ einfach gehaltenen Implementierungsansatzes Kommunikations- und Umschaltzeiten zwischen parallelen Aktivitäten erreicht werden konnten, die mit Implementierungen ähnlicher Sprachen vergleichbar sind oder teilweise sogar besser liegen. Es zeigte sich auch, daß einige der Einschränkungen, die durch das bisher realisierte lineare Typsystem dem Programmierer auferlegt wurden, noch als zu restriktiv zu werten sind. In Kooperation mit Klaus Barthelmann (Univ. Mainz) wird deshalb an der Erweiterung des Typsystems und des Typinferenzalgorithmus weitergearbeitet.

Von Klaus Barthelmann sind auch verschiedene prototypische Implementierungen (Compiler/Laufzeitsystem, Typinferenzsystem) in Zusammenhang mit dem DHOP-Projekt erstellt worden.


schied@informatik.uni-stuttgart.de
Last modified: Mon Feb 24 11:19:22 MET 1997