Pi-Kalkül
Der Pi-Kalkül (π-Kalkül) ist ein Prozesskalkül, der von Robin Milner, Joachim Parrow und David Walker in den 1990er Jahren<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:Nebenläufige Programmierung: Praxis und Semantik|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Nebenläufige Programmierung: Praxis und Semantik}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Nebenläufige Programmierung: Praxis und Semantik}}}}|[{{#invoke:URLutil|getNormalized|1=https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Nebenläufige Programmierung: Praxis und Semantik}}}}]}}{{#if:| ({{{format}}}{{#if:2011{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| )
| {{#if:{{#ifeq:de|de||{{#if:|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}}%7C%7C}}}}{{#if:Nebenläufige Programmierung: Praxis und Semantik|{{#if:{{#invoke:WLink|isValidLinktext|1=Nebenläufige Programmierung: Praxis und Semantik|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: | {{{hrsg}}}{{#if: 2011|,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: 2011| {{#if:{{#invoke:DateTime|format|2011|noerror=1}}
|{{#invoke:DateTime|format|2011|T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2011|class=Zitationswartung}} }}{{#if: |,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:2011|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:1716299||(?)}}}}}}{{#if: 2018-10-08|;}}}}{{#if: 2018-10-08| {{#if:2011{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2018-10-08 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2018-10-08|class=Zitationswartung}} }} {{#invoke:DateTime|format|2018-10-08|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:|1}}}}|{{#if:2011{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:de|de|de}}|de||
{{#invoke:Multilingual|format|{{{sprache}}}|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2011{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if: | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if:{{#invoke:URLutil|isWebURL|https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if:{{#invoke:URLutil|isWebURL|https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if: | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if:{{#invoke:URLutil|isWebURL|https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 | {{#if:{{#invoke:URLutil|isWebURL|https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[https://www.ki.informatik.uni-frankfurt.de/lehre/WS2011/TIDS/folien/15-semantik-2-4sw.pdf#page=2 }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref> als Nachfolger des Calculus of Communicating Systems (CCS) entwickelt wurde. Mit dem Pi-Kalkül können nebenläufige Systeme, die sich während der 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üsselungsprotokollen eingesetzt.
Ein Anwendungszweck dieser Art von Verfahren ist die Simulation von Nebenläufigkeiten wie zum Beispiel 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.
Konstrukte
Die Prozessalgebra des Pi-Kalküls<ref name="prozessalgebra">{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:PI-Kalkül Prozessalgebra|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=PI-Kalkül Prozessalgebra}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=PI-Kalkül Prozessalgebra}}}}|[{{#invoke:URLutil|getNormalized|1=http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=PI-Kalkül Prozessalgebra}}}}]}}{{#if:| ({{{format}}}{{#if:{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| )
| {{#if:{{#ifeq:de|de||{{#if:|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}}%7C%7C}}}}{{#if:PI-Kalkül Prozessalgebra|{{#if:{{#invoke:WLink|isValidLinktext|1=PI-Kalkül Prozessalgebra|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: | {{{hrsg}}}{{#if: |,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format||noerror=1}}
|{{#invoke:DateTime|format||T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=|class=Zitationswartung}} }}{{#if: |,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:1716299||(?)}}}}}}{{#if: 2018-10-08|;}}}}{{#if: 2018-10-08| {{#if:{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2018-10-08 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2018-10-08|class=Zitationswartung}} }} {{#invoke:DateTime|format|2018-10-08|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:|1}}}}|{{#if:{{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:de|de|de}}|de||
{{#invoke:Multilingual|format|{{{sprache}}}|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2018-10-08 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if: | [3] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if:{{#invoke:URLutil|isWebURL|http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if:{{#invoke:URLutil|isWebURL|http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if: | [4] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if:{{#invoke:URLutil|isWebURL|http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 | {{#if:{{#invoke:URLutil|isWebURL|http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[http://www.softwareresearch.net/fileadmin/src/docs/teaching/WS08/SaI/Maidorfer_Zwifl_presentation.pdf#page=21 }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref> ist stark mit Namen verknüpft. Durch die doppelte Rolle von Namen als Kommunikationskanal und Variable ist eine einfache Anwendung sichergestellt.
| Konstrukt | Syntax | Beschreibung |
|---|---|---|
| Nebenläufigkeit | <math>P \mid Q</math> | <math>P</math> und <math>Q</math> können gleichzeitig ausgeführt werden. |
| Eingabepräfix | <math>c\left(x\right).P</math> | Der Prozess <math>P</math> wartet auf Input <math>x</math>, der über den Kommunikationskanal <math>c</math> gesendet wird. Der Name <math>x</math> ist gebunden. |
| Ausgabepräfix | <math>\overline{c} \langle y \rangle.P</math> | Der Name <math>y</math> wird über den Kanal <math>c</math> gesendet, bevor der Prozess <math>P</math> beginnt. |
| Silent Prefix | <math>\tau.P</math> | |
| Replikation | <math>!\,P</math> | Der Prozess <math>P</math> kann eine Kopie von <math>P</math> erstellen. |
| Neuer Name | <math>\left(\nu x\right)P</math> | <math>P</math> kann eine neue Konstante <math>x</math> innerhalb von <math>P</math> erstellen. Dies ist ein neuer Kommunikationskanal. |
| Null-Prozess | 0 | Der Prozess ist vollständig abgearbeitet und angehalten. |
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.
Formale Definition
Seien X eine Menge von Namen und x und y Elemente dieser Menge!<ref name="prozessalgebra"/> Die folgende Formale Grammatik in Backus-Naur-Form beschreibt die Formale Sprache des Pi-Kalküls:
- <math> \begin{align}
P,Q ::= \, & x(y).P \,\,\, \\ |\,\,\, & \overline{x} \langle y \rangle.P \,\,\, \\ |\,\,\, & P|Q \,\,\, \\ |\,\,\, & (\nu x)P \,\,\, \\ |\,\,\, & !P \,\,\, \\ |\,\,\, & 0 \end{align} </math> In Worte übersetzt heißt das:
- Empfange auf dem Kanal <math>x</math>, binde das Resultat an <math>y</math> und starte <math>P</math>
- sende den Wert von <math>y</math> über den Kanal <math>x</math> und starte <math>P</math>
- starte <math>P</math> und <math>Q</math> gleichzeitig
- erzeuge einen neuen Kanal <math>x</math> und starte <math>P</math>
- erzeuge eine Kopie von <math>P</math>
- beende den Prozess.
Beispiel
Ein Beispiel zeigt drei nebenläufige Prozesse, wobei der Name <math>x</math> nur den ersten beiden Komponenten bekannt ist.
- <math>
\begin{align}
(\nu x) & \; ( \; \overline{x} \langle z \rangle . \; 0 \\
& \; | \; x(y) . \; \overline{y}\langle x \rangle . \; x(y) . \; 0 \; ) \\
& \; | \; z(v) . \; \overline{v}\langle v \rangle . 0
\end{align} </math> Die ersten zwei Komponenten können über den Kanal <math>x</math> kommunizieren, der Name <math>y</math> wird an <math>z</math> gebunden.
Literatur
- Robin Milner: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, 1999, ISBN 0-521-65869-1.
- Robin Milner: The Polyadic π-Calculus: A Tutorial Logic and Algebra of Specification, 1993.
- Davide Sangiorgi und David Walker: The Pi-calculus: A Theory of Mobile Processes. Cambridge University Press, ISBN 0-521-78177-9.
Weblinks
- PiCalculus
- Calculi for Mobile Processes
- FAQ on Pi-Calculus (PDF-Datei; 196 kB)
- Nebenläufige Programmierung:Praxis und Semantik
- Modellierung biologischer Prozesse
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:"
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Theoretische Informatik
- Logikkalkül