<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Pi-Kalk%C3%BCl</id>
	<title>Pi-Kalkül - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Pi-Kalk%C3%BCl"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Pi-Kalk%C3%BCl&amp;action=history"/>
	<updated>2026-06-07T12:12:14Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Pi-Kalk%C3%BCl&amp;diff=1716299&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Pi-Kalk%C3%BCl&amp;diff=1716299&amp;oldid=prev"/>
		<updated>2025-12-15T19:51:21Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Pi-Kalkül&amp;#039;&amp;#039;&amp;#039; (π-Kalkül) ist ein [[Prozesskalkül]], der von [[Robin Milner]], Joachim Parrow und David Walker in den 1990er Jahren&amp;lt;ref&amp;gt;{{Internetquelle | url=https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | titel=Nebenläufige Programmierung: Praxis und Semantik | datum=2011 | zugriff=2018-10-08}}&amp;lt;/ref&amp;gt; als Nachfolger des Calculus of Communicating Systems (CCS) entwickelt wurde. Mit dem Pi-Kalkül können [[Nebenläufigkeit|nebenläufige]] [[System]]e, die sich während der [[Laufzeit (Informatik)|Laufzeit]] ändern, beschrieben werden. Trotz seiner einfachen [[Syntax]] ist er sehr expressiv. Es lassen sich funktionale Programmierungen darin ausdrücken. Erweiterungen wie der spi-Kalkül und „applied π“ wurden erfolgreich zur Brechung von [[Verschlüsselungsprotokoll]]en eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Ein Anwendungszweck dieser Art von Verfahren ist die Simulation von Nebenläufigkeiten wie zum Beispiel [[Thread (Informatik)|Threads]] oder Prozessen auf Mehrkernprozessoren, weil bei der Programmierung von Software, welche diese Funktionalität nutzt, komplexe Randbedingungen ins Spiel kommen, die mittels einer solchen Simulation leichter in den Griff zu bekommen sind. Weitere Anwendungszwecke haben sich in der [[Molekularbiologie]] und zur [[Geschäftsprozessmodellierung]] ergeben.&lt;br /&gt;
&lt;br /&gt;
== Konstrukte ==&lt;br /&gt;
Die Prozessalgebra des Pi-Kalküls&amp;lt;ref name=&amp;quot;prozessalgebra&amp;quot;&amp;gt;{{Internetquelle | url=http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | titel=PI-Kalkül Prozessalgebra | datum= | zugriff=2018-10-08}}&amp;lt;/ref&amp;gt; ist stark mit Namen verknüpft. Durch die doppelte Rolle von Namen als Kommunikationskanal und Variable ist eine einfache Anwendung sichergestellt.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Konstrukt !! Syntax !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| [[Nebenläufigkeit]] || &amp;lt;math&amp;gt;P \mid Q&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; können gleichzeitig ausgeführt werden.&lt;br /&gt;
|-&lt;br /&gt;
| Eingabepräfix || &amp;lt;math&amp;gt;c\left(x\right).P&amp;lt;/math&amp;gt;&lt;br /&gt;
| Der Prozess &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; wartet auf Input &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, der über den Kommunikationskanal &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; gesendet wird. Der Name &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; ist gebunden.&lt;br /&gt;
|-&lt;br /&gt;
| Ausgabepräfix || &amp;lt;math&amp;gt;\overline{c} \langle y \rangle.P&amp;lt;/math&amp;gt;&lt;br /&gt;
| Der Name &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; wird über den Kanal &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; gesendet, bevor der Prozess &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; beginnt.&lt;br /&gt;
|-&lt;br /&gt;
| Silent Prefix || &amp;lt;math&amp;gt;\tau.P&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Replikation || &amp;lt;math&amp;gt;!\,P&amp;lt;/math&amp;gt;&lt;br /&gt;
| Der Prozess &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; kann eine Kopie von &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; erstellen.&lt;br /&gt;
|-&lt;br /&gt;
| Neuer Name || &amp;lt;math&amp;gt;\left(\nu x\right)P&amp;lt;/math&amp;gt;&lt;br /&gt;
| &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; kann eine neue Konstante &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; innerhalb von &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; erstellen. Dies ist ein neuer Kommunikationskanal.&lt;br /&gt;
|-&lt;br /&gt;
| Null-Prozess || &amp;#039;&amp;#039;0&amp;#039;&amp;#039;&lt;br /&gt;
| Der Prozess ist vollständig abgearbeitet und angehalten.&lt;br /&gt;
|}&lt;br /&gt;
Diese minimale Definition des Pi-Kalküls verhindert einerseits Programme im üblichen Sinn. Anderseits ist es einfach, die fehlenden Kontrollstrukturen und Verzweigungen zu ergänzen.&lt;br /&gt;
&lt;br /&gt;
== Formale Definition ==&lt;br /&gt;
Seien X eine [[Menge (Mathematik)|Menge]] von Namen und x und y Elemente dieser Menge!&amp;lt;ref name=&amp;quot;prozessalgebra&amp;quot;/&amp;gt; Die folgende [[Formale Grammatik]] in [[Backus-Naur-Form]] beschreibt die [[Formale Sprache]] des Pi-Kalküls:&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
P,Q ::= \, &amp;amp; x(y).P \,\,\, \\&lt;br /&gt;
|\,\,\, &amp;amp; \overline{x} \langle y \rangle.P \,\,\, \\&lt;br /&gt;
|\,\,\, &amp;amp; P|Q \,\,\, \\&lt;br /&gt;
|\,\,\, &amp;amp; (\nu x)P  \,\,\, \\&lt;br /&gt;
|\,\,\, &amp;amp; !P \,\,\, \\&lt;br /&gt;
|\,\,\, &amp;amp; 0 &lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
In Worte übersetzt heißt das:&lt;br /&gt;
* Empfange auf dem Kanal &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, binde das Resultat an &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; und starte &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;&lt;br /&gt;
* sende den Wert von &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; über den Kanal &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; und starte &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;&lt;br /&gt;
* starte &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; gleichzeitig&lt;br /&gt;
* erzeuge einen neuen Kanal &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; und starte &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;&lt;br /&gt;
* erzeuge eine Kopie von &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;&lt;br /&gt;
* beende den Prozess.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Ein Beispiel zeigt drei nebenläufige Prozesse, wobei der Name &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; nur den ersten beiden Komponenten bekannt ist.&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
  (\nu x) &amp;amp; \; ( \; \overline{x} \langle z \rangle . \; 0  \\&lt;br /&gt;
          &amp;amp; \; | \; x(y) . \; \overline{y}\langle x \rangle . \; x(y) . \; 0 \; )  \\&lt;br /&gt;
          &amp;amp; \; | \; z(v) . \; \overline{v}\langle v \rangle . 0&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
Die ersten zwei Komponenten können über den Kanal &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; kommunizieren, der Name &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; wird an &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; gebunden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Robin Milner: &amp;#039;&amp;#039;Communicating and Mobile Systems: the Pi-Calculus.&amp;#039;&amp;#039; Cambridge University Press, 1999, ISBN 0-521-65869-1.&lt;br /&gt;
* Robin Milner: [https://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-180/ The Polyadic π-Calculus: A Tutorial] Logic and Algebra of Specification, 1993.&lt;br /&gt;
* Davide Sangiorgi und David Walker: &amp;#039;&amp;#039;The Pi-calculus: A Theory of Mobile Processes.&amp;#039;&amp;#039; Cambridge University Press, ISBN 0-521-78177-9.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://c2.com/cgi/wiki?PiCalculus PiCalculus]&lt;br /&gt;
* [http://move.to/mobility Calculi for Mobile Processes]&lt;br /&gt;
* [http://www.eecs.harvard.edu/~nr/cs257/archive/jeannette-wing/pi.pdf FAQ on Pi-Calculus] (PDF-Datei; 196&amp;amp;nbsp;kB)&lt;br /&gt;
* [https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf Nebenläufige Programmierung:Praxis und Semantik]&lt;br /&gt;
* [http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf Modellierung biologischer Prozesse]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Theoretische Informatik]]&lt;br /&gt;
[[Kategorie:Logikkalkül]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>