TYPEN UND OBJEKTE im Pi-Kalkül
description
Transcript of TYPEN UND OBJEKTE im Pi-Kalkül
![Page 1: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/1.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
TYPEN UND OBJEKTEim Pi-Kalkül
verfasst von Eyad Alkassar
Seminar zum pi-Kalkül betreut von Andreas Rossberg
π
![Page 2: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/2.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ INHALT
1. Warum Typen? 2. Einführung von einfachen Typen
3. Erweiterungen
4. Anwendung: Objekte
5. Zusammenfassung & Ausblick
![Page 3: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/3.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?
Vermeidung von Laufzeitfehlern
Motivation
besseres Verständnis von Verhalten von Programmen
Dokumentation von Quellcode
Optimierung von Compilern
…
![Page 4: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/4.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?
Vermeidung von Laufzeitfehlern
Motivation
besseres Verständnis von Verhalten von Programmen
Dokumentation von Quellcode
Optimierung von Compilern
…
![Page 5: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/5.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Vermeidung von Laufzeitfehler
• Was sind Laufzeitfehler im pi-Kalkül?
• Beispiel im polyadischen Kalkül
• Bisher haben wir noch keine Übergänge gesehen, daher betrachten Reaktionen
. 'x abc P . 'x yz Q
![Page 6: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/6.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Vermeidung von Laufzeitfehler
• Was sind Laufzeitfehler im pi-Kalkül?
• Beispiel im polyadischen Kalkül
• Bisher haben wir noch keine Übergänge gesehen, daher betrachten Reaktionen
. 'x abc P . 'x yz Q Fehler
![Page 7: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/7.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Vermeidung von Laufzeitfehler
• Was sind Laufzeitfehler im pi-Kalkül?
:
( . '... ) | ( . '... )EHLER
y xF
x y P N x fehlz eQ rM
• Fügen Fehlerregel zu Reaktionsregeln hinzu:
: |
: x
:
AR EHLER
IND EHLER
UM EHLER
fehler fehler
feh
P F P
B F n ler fehler
fehler fehle
ew
S M rF
![Page 8: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/8.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Wir formulieren diese Eigenschaft ein wenig anders:
Eigenschaft PROGRESS: Wohlgetypte Terme despi-Kalküls können in einem Schritt nicht zu fehler reagieren
Was bedeutet wohlgetypt?
![Page 9: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/9.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Besseres Verständnis von Programmverhalten
• Wohlgetypt als Eigenschaft von einem Ausdruck, der während der Ausführung erhalten bleibt
• Und Einschränkung der möglichen Reaktionen
![Page 10: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/10.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Kontrollieren das Verhalten von Prozessen:
• Für ein einfaches Systems S und folgenden Eigenschaften
1. Es verwaltet x 2. Es ist x-vergesslich3. Für jeden Subterm der Form z(y).Q ist Q y-vergesslich
• gilt: wenn S S‘, dann hat S‘ Eigenschaften 1-3
![Page 11: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/11.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ WARUM TYPEN?Beispiele
Wir formulieren die Eigenschaft anders:
Eigenschaft PRESERVATION: Wohlgetypt ist stabilunter Reaktion (und struktureller Kongruenz).
Was bedeutet wohlgetypt?
Eigenschaft PROGRESS: Wohlgetypte Terme despi-Kalküls können in einem Schritt nicht zu fehler reagieren
Eigenschaft SOUNDNESS: Wohlgetypte Terme despi-Kalküls reagieren nie zu fehler.
+
=
[ Wright, Andrew K. und Matthias Felleisen 1994 ]
![Page 12: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/12.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ EINFÜHRUNG VON TYPEN Erste Version
Namen können als Daten ausgetauscht werden• Kategorisierung dieser Namen in Typen
2
1
1 1
2
2: :: :,
Menge aller Typen sei
x u y v
• Namensvektoren werden Typvektoren zugewiesen:
: , :i
i i ix wenn x x
![Page 13: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/13.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Erste Version Namen auch Kanäle für andere Namen
• Namen welchen Typs darf ein Name eines bestimmten Typs übermitteln?
1 (: | ...)new x x uv
EINFÜHRUNG VON TYPEN
![Page 14: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/14.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Erste Version Definition von Typdisziplin
Definition wohlgetypt
EINFÜHRUNG VON TYPEN
![Page 15: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/15.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Erste Version Definition von Typdisziplin
Definition wohlgetypt
part *
Eine Typdisziplin zu einer Typmenge
ist eine Funktion ob :
EINFÜHRUNG VON TYPEN
![Page 16: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/16.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Erste Version Definition von Typdisziplin
Definition wohlgetypt
part *
Eine Typdisziplin zu einer Typmenge
ist eine Funktion ob :
Ein Prozess heißt , wenn für alle x y .P oder x y .P gilt :
wen
wohlgetypt u
n x : dann
n
ter
y : ob( )
ob
EINFÜHRUNG VON TYPEN
![Page 17: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/17.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Erste Version Definition von Typdisziplin
part *
Eine Typdisziplin zu einer Typmenge
ist eine Funktion ob :
Definition wohlgetypt
EINFÜHRUNG VON TYPEN
Ein Prozess heißt , wenn für alle x y .P oder x y .P gilt :
wohlgetypt unter ob
wenn x : dann y : ob( )
![Page 18: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/18.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools
True b b(tf). t
False(b) b(tf).f
EINFÜHRUNG VON TYPEN
![Page 19: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/19.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools
True b b(tf). t
False(b) b(tf).f
OOL
RUE
: ALSE
b: Bt: Tf F
Typen und ihre Disziplin
EINFÜHRUNG VON TYPEN
![Page 20: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/20.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools
True b b(tf). t
False(b) b(tf).f
OOL RUE, ALSE
RUE ε
ALSE ε
B T FTF
OOL
RUE
: ALSE
b: Bt: Tf F
Typen und ihre Disziplin
EINFÜHRUNG VON TYPEN
![Page 21: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/21.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
Erinnerung
Beispiel für DefinitionenEINFÜHRUNG VON TYPEN
![Page 22: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/22.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 23: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/23.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALK WITCH AIN OSE= T ,S ,G , L
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 24: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/24.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALK WITCH AIN OSE= T ,S ,G , L
ALK, WITCH, AIN, OSE: T : S : G : Li i i italk switch gain lose
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 25: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/25.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALKT
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 26: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/26.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALK
WITCH ALK, WITCH
TS T S
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 27: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/27.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALK
WITCH ALK, WITCH
AIN ALK, WITCH
TS T SG T S
Beispiel für Definitionen
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
EINFÜHRUNG VON TYPEN
![Page 28: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/28.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Beispiel: Mautsystem
ALK
WITCH ALK, WITCH
AIN ALK, WITCH
OSE ALK, WITCH
TS T SG T SL T S
1 1
11 1
Truck( , ) .Truck talk, switch + (t, s).Truck t, s
Trans (talk, switch) talk.Trans talk, switch +
talk switch talk switch
lose (t,s).switch t,s . (t,s).Trans ,gain t s
Beispiel für DefinitionenEINFÜHRUNG VON TYPEN
![Page 29: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/29.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s? Kontrollieren das Verhalten von Prozessen:
• Für ein einfaches Systems S und folgenden Eigenschaften
1. Es verwaltet x 2. Es ist x-vergesslich3. Für jeden Subterm der Form z(y).Q ist Q y-vergesslich
• gilt: wenn S S‘, dann hat S‘ Eigenschaften 1-3
EINFÜHRUNG VON TYPEN
![Page 30: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/30.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s? Kontrollieren das Verhalten von Prozessen:
• Für ein wohlgetyptes einfaches Systems S mit x:A und folgenden Eigenschaften
1. Es verwaltet x 2. Es ist x-vergesslich3. Für jeden Subterm der Form z(y).Q ist Q y-vergesslich falls y:A gilt.
• gilt, wenn S S‘, dann hat S‘ Eigenschaften 1-3
EINFÜHRUNG VON TYPEN
![Page 31: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/31.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s?
x abc .P' | x yz .Q'
Eigenschaft SOUNDNESS: Wohlgetypte Terme despi-Kalküls können nicht zu fehler reagieren. (ohne Beweis)
EINFÜHRUNG VON TYPEN
![Page 32: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/32.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s?
x abc .P' | x yz .Q'
Eigenschaft SOUNDNESS: Wohlgetypte Terme despi-Kalküls können nicht zu fehler reagieren. (ohne Beweis)
EINFÜHRUNG VON TYPEN
1 2 3
1 2
ob(x) = ob(x) =
nicht wohlgetypt
![Page 33: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/33.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s? besseres Verständnis des pi-Kalküls
wie wird der getypte pi-Kalkül zu CCS?
EINFÜHRUNG VON TYPEN
![Page 34: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/34.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
Was bringt‘s?
•
• Unterteilen in und : • Menge aller Namen die als Link auftauchen dürfen• Menge elementarer Typen
pi-Kalkül kontrollieren
'
'
: ( ') *ob
Nur noch Daten übertragen (CCS mit Value-Übertragung)
EINFÜHRUNG VON TYPEN
![Page 35: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/35.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Betrachten noch mal die Bool Typen
OOL RUE, ALSE
RUE ε
ALSE ε
B T FTF
OOL
RUE
: ALSE
b: Bt: Tf F
![Page 36: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/36.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
• Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen
Betrachten noch mal die Bool Typen
OOL RUE, ALSE
RUE ε
ALSE ε
B T FTF
OOL
RUE
: ALSE
b: Bt: Tf F
![Page 37: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/37.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
• Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen
Betrachten noch mal die Bool Typen
OOL RUE, ALSE
RUE ε
ALSE ε
B T FTF
OOL
RUE
: ALSE
b: Bt: Tf F
HAN ε
HAN ε
t: Cf: C
HAN ε εC
![Page 38: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/38.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Erinnern uns noch mal an ListenNil(l) l(nc).nNode(l) (vl').l(nc).c vl'...
![Page 39: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/39.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
• Würden gerne einen Typkonstruktor für Listen definieren
Erinnern uns noch mal an ListenNil(l) l(nc).nNode(l) (vl').l(nc).c vl'...
![Page 40: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/40.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
• Würden gerne einen Typkonstruktor für Listen definieren
Erinnern uns noch mal an ListenNil(l) l(nc).nNode(l) (vl').l(nc).c vl'...
IST HAN HAN ISTL ( ) C ( ), C ( , L ( )):
...ob
![Page 41: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/41.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren
![Page 42: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/42.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren
1 nC ,...., • Eine Typsprache hat Elemente der Form
![Page 43: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/43.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren
1 nC ,...., • Eine Typsprache hat Elemente der Form
• C aus der Menge der Typkonstruktoren ist mit Stelligkeit n
![Page 44: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/44.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren
1 nC ,....,
1 n 1 n
1 n 1 n
ob : C ,..., ,...,
ob C ,...., ,..., [ : ]
s s
s
• Eine Typsprache hat Elemente der Form
• Disziplin für Typkonstruktoren wird über Typvariablen si definiert:
• C aus der Menge der Typkonstruktoren ist mit Stelligkeit n
![Page 45: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/45.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel:
![Page 46: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/46.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel:
1 n 1 nnHANC ,..., ,...,s s s s
![Page 47: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/47.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel:
1 n 1 nnHANC ,..., ,...,s s s s
• Anwendung von CHAN bei Listen
IST HAN HAN ISTL ( ) C ( ), C ( , L ( )):
...ob
![Page 48: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/48.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
Beispiel für die Mächtigkeit des pi-Kalküls
![Page 49: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/49.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
Beispiel für die Mächtigkeit des pi-Kalküls
Eine nicht-triviale Anwendung unserer Typen
![Page 50: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/50.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
Beispiel für die Mächtigkeit des pi-Kalküls
Eine nicht-triviale Anwendung unserer Typen
Folgende Symbole werden benutzt
![Page 51: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/51.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
Beispiel für die Mächtigkeit des pi-Kalküls
Eine nicht-triviale Anwendung unserer Typen
Folgende Symbole werden benutzt
Methoden des Objekts
Variablen des Objekts
Objekte
Klassen
![Page 52: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/52.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP
KLASSE A KLASSE B
Methoden des Objekts
Variablen des Objekts
Objekte
Klassen
BOPL - PROGRAMME
![Page 53: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/53.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP
KLASSE A KLASSE B
Objekt 1 Objekt 2 Objekt 3
Methoden des Objekts
Variablen des Objekts
Objekte
Klassen
BOPL - PROGRAMME
![Page 54: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/54.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP
KLASSE A KLASSE B
Objekt 1 Objekt 2 Objekt 3
Methodenaufruf
BOPL - PROGRAMME
Methoden des Objekts
Variablen des Objekts
Objekte
Klassen
![Page 55: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/55.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP
Class A
VAR V1: A, V2: B
Klassendeklaration A: class-decA
METHODE M1(X1: B): A = S1 METHODE M2(X1: A, X2: A): B = S2
AUFBAU VON POPEL PROGRAMMEN
![Page 56: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/56.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
SERVER A
kA
Klasse als Server, Dienst fordert neues Objekt über Adress kA
![Page 57: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/57.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
SERVER A
kA
a
Server legt neues Objekt an und sendet als Antwort Adresse a des Objekts
a
![Page 58: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/58.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
SERVER A
kA
a m1 m2
m1, m2
Benutzer fordert von Objekt A Methoden an
![Page 59: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/59.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IM PI-KALKÜL
Über die Adressen der Methoden ruft Benutzer diese auf
SERVER A
kA
a m1 m2
r
und erhält Adresse des Rückgabe wertes
x1..
![Page 60: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/60.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Class A VAR V1: A, V2: B
Klassendeklaration A
METHODE M1(X1: B): A
METHODE M2(X1: A, X2: A): B
pi-Kalkül Namen
Ak : Eindeutiger Name für Klasse A
![Page 61: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/61.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Class A VAR V1: A, V2: B
Klassendeklaration A
METHODE M1(X1: B): A
METHODE M2(X1: A, X2: A): B
pi-Kalkül Namen
1
Ak : Eindeutiger Name für Klassv ... : Variable der Kla
e Asse A
![Page 62: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/62.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Class A VAR V1: A, V2: B
Klassendeklaration A
METHODE M1(X1: B): A
METHODE M2(X1: A, X2: A): B
pi-Kalkül Namen
1
1
2
A
1
x ... : Methodenparameter in Am : Name der Metho
k : Eindeutiger Name für Klasse Av ...
de M1m : Name der Met
: Varia
hode M2r
ble der
Klasse A
: Nam
e des Rückg
abewerteseiner Methode
![Page 63: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/63.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Class A VAR V1: A, V2: B
Klassendeklaration A
METHODE M1(X1: B): A
METHODE M2(X1: A, X2: A): B
pi-Kalkül Namen
A
1
1
1
2
k : Eindeutiger Name für Klasse Av ... : Variable der Klasse A
x ... : Methodenparameter in Am : Name der Methode M1m : Name der Methode M2r : Nam
a : Name eine
e des Rückgabewertes
s beliebigen Objekts
einer M
der Kla
ethode
sse A
![Page 64: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/64.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Welche Typen haben unsere Namen?
a : A A ?
![Page 65: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/65.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Welche Typen haben unsere Namen?
1
2
1
1
m : METHOD(B,A) METHOD a : A
( ,.., , ') ,.., ,CHAN
m : METHO
A ?
D(A,A, B) 'n ns s s s s s
![Page 66: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/66.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Welche Typen haben unsere Namen?
1 1 1
2
a : A m : METHOD(B,A) METHOD ( ,.., , ') ,.., ,CHAN
A METHOD(B,A), METHOD(A,A'
m : METHOD(A,A, B)
, B)
n ns s s s s s
![Page 67: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/67.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Welche Typen haben unsere Namen?
1 1 1
2
A
a : A A METHOD(B,A), METHOD(A,A, B)m : METHOD(B,A) METHOD ( ,.., , ') ,.., ,CHAN 'm : METHOD(A,A, B) k : CL
n ns s s s s s
ASS A CLASS s s
![Page 68: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/68.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPÜBERTRAGUNG VON KLASSEN
Welche Typen haben unsere Namen?
1 1 1
2
a : A A METHOD(B,A), METHOD(A,A, B)m : METHOD(B,A) METHOD ( ,.., , ') ,.., ,CHAN 'm : METHOD(A,A
n ns s s s s s
A
1
1
, B) k : CLASS A CLAv ... : REF Ax ... : Ar
SS
: CH A
AN
s s
![Page 69: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/69.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP Modellierung der Klassendefinition
Zugriff auf neues Objekt a über Namen ka
SERVER A
kAa
a
Def
A A Aclass-dec = !new a k a .Object a
![Page 70: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/70.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP Modellierung eines Objekts a
Def
1 2
A
A = new v :REF A, v : REF B
Nullref v1 |Nullref v2 | !Metho
Object
den
a
a
Def
A A Aclass-dec = !ne Objw a k . ecta a
jedes Objekt hat seine eigenen Methoden und Variablen
Variablen werden zunächst mit Null initialisiert
SERVER A
kAa
a
![Page 71: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/71.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSP Modellierung der Methoden
Def
1 2
1 1 11 2
2 2
A
1 2
= new m : METHOD(B, A), m : METHOD(A, A, B)
m (x : B, r: CHAN A). S a m m .
+ m (x : A, x : A, r: CHAN B). S
Methoden a
Def
A 1
A
2Object a = new v :REF A, v : REF B
Nullref v1 |Nullref v2 | !Methoden a
Der Name a wird wie als Selbstreferenz (wie self) verwendet
SERVER AkA
a m1m2
rx1,x2
![Page 72: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/72.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ANWENDUNGSBSPOBJEKTE IN PI
Was haben wir nicht modelliert?
• Subtyping
• Vererbung, …
Was haben wir modelliert?
• getypte Methoden
• Enkapsulierung von Daten
• Parallele Berechnung
![Page 73: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/73.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ ZUSAMMENFASSUNG
Typen helfen uns Verhalten von Prozessen einzuschränken und besser zu verstehen
Den pi-Kalkül kann man (fast) wie eine höhere Programmiersprache benutzen.
Mit Hilfe von Typen lassen sich Objekte recht leicht im pi-Kalkül modellieren
Noch viele Erweiterungen des Typsystems möglich
Aussagen wie Deadlock mit Typen untersuchen
![Page 74: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/74.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ LITERATURCOMMUNICATING AND MOBILE SYSTEMS: THE PI-CALCULUS Robin Milner, Cambridge University, Cambridge, Great Britain 1999
THE PI-CALCULUS : A THEORY OF MOBILE PROCESSES Davide Sangiorgi, INRIA Sophia Antipolis and David Walker University of Oxford, Cambridge University Press 2001
![Page 75: TYPEN UND OBJEKTE im Pi-Kalkül](https://reader035.fdocument.pub/reader035/viewer/2022070502/56814aa4550346895db7ba23/html5/thumbnails/75.jpg)
TYPEN UND OBJEKTE IM PI-KALKÜLπ
DANKE