Formalismen bei gleichzeitiger und / oder verteilter Programmierung?

10

Mein Hintergrund stammte aus imperativen Sprachen, hauptsächlich C, C ++ und Python. Einige Jahre später habe ich Scala, Erlang und ein bisschen Haskell aufgegriffen und mich seitdem sehr für funktionale Programmierung und die dahinter stehenden Formalismen interessiert.

Ich interessiere mich auch für gleichzeitige und verteilte Programmierung und habe mich mit Formalismen befasst, die dahinter stehen, insbesondere mit solchen, die zumindest ein kleines Stück vom "Tageslicht" gesehen haben (z. B. reale Nutzung oder zumindest eine Implementierung irgendwo). Bisher kenne ich die Kommunikation sequentieller Prozesse, das Akteurmodell, die Algebra kommunizierender Prozesse und die Berechnung kommunizierender Systeme. Ich weiß, dass sich das Actor-Modell in Sprachen wie Erlang, Scala und Haskell verwirklicht hat.

Ich frage mich, ob es Grundlagen gibt, die ich lernen und üben sollte, bevor ich mich mit diesen Bereichen befasse, ob es eine "klassische" gibt, die ich zuerst studieren sollte, und ob es andere beliebte gibt, die ich möglicherweise übersehen habe?

adelbertc
quelle

Antworten:

5

Der am weitesten verbreitete Formalismus ist der Kalkül von Milner, Parrow und Walker. Es ist eine Erweiterung von CCS und kommt in vielen Varianten vor, von denen einige (der asynchrone Kalkül) versuchen, eine Formalisierung des Akteurmodells zu sein. Es gibt jetzt viele Schreibdisziplinen für -calculi, von denen die einfachsten wahrscheinlich Hondas Sitzungstypen sind. Solche Typen verbreiten sich langsam von Forschungsarbeiten zu Forschungsimplementierungen.πππ

Martin Berger
quelle
Ah sehr interessant, danke! Welche Art von mathematischem Hintergrund empfehlen Sie, bevor Sie sich mit einem solchen Feld befassen, oder ist es mehr oder weniger in sich geschlossen?
Adelbertc
2
Es ist mehr oder weniger in sich geschlossen. Zumindest die Grundlagen. Milners Kommunikations- und Mobilsysteme sind eine freundliche Einführung. Wenn Sie sich mit Typen für Parallelität befassen möchten, empfehle ich, zuerst den untypisierten Kalkül zu verstehen und vielleicht auch mit typisierten Kalkülen vertraut zu sein. πλ
Martin Berger