Zuerst würde ich empfehlen, dass Sie sich PROMELA ansehen , eine Sprache, die zur Beschreibung eines gleichzeitigen Algorithmus verwendet wird, damit ein Modellprüfer alle möglichen Ausführungen brutal erzwingen kann, um zu überprüfen, ob es nicht zu falschem Verhalten fähig ist. (Die gleichzeitige Programmierung ist bekanntermaßen schwierig zu finden, weshalb solche Verifikationstechniken wichtig sind.) Es werden nicht alle Konstrukte in separaten Threads ausgeführt, aber die Syntax und Semantik sind eher merkwürdig, da der Schwerpunkt auf dem Nichtdeterminismus von gleichzeitigen Programmen liegt.
Abstrakter betrachtet ist der π-Kalkül ein schöner Ansatz zur Modellierung paralleler Berechnungen. Es ist schwer, sich zurechtzufinden, wenn Sie nicht das Buch Communicating and Mobile Systems: The Pi Calculus von Robin Milner erhalten. Es hat mir geholfen, über parallele Berechnungen im weiteren Sinne nachzudenken, wie "mehrere Threads auf einen gemeinsamen Speicher zugreifen". Es ist ziemlich interessant, wie bedingte Anweisungen, "gotos" usw. aus einfacheren, natürlich parallelen Primitiven aufgebaut werden können.
In Bezug auf die Syntax ... der beste Weg, dies herauszufinden, besteht darin, einige Beispielprogramme zu schreiben. Schreiben Sie ein Programm, um ein Array zu sortieren, oder senden Sie einen Ping-Befehl an mehrere Server und geben Sie an, welcher Server am schnellsten antwortet, oder versuchen Sie, ein Labyrinth parallel zu lösen, oder so weiter. Während Sie dies tun, werden die Dinge, die in Ihrer Syntax fehlen, offensichtlich und Sie können sie hinzufügen. Nachdem Sie mehrere Dinge hinzugefügt haben, fragen Sie sich, ob sie etwas gemeinsam haben. In diesem Fall können Sie möglicherweise einen einfacheren Ansatz finden, der mehreren Zwecken dienen kann.