Distributed Higher Order Processes
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