TYPEN UND OBJEKTE im Pi-Kalkül

75
TYPEN UND OBJEKTE IM PI-KALKÜL π TYPEN UND OBJEKTE im Pi-Kalkül verfasst von Eyad Alkassar Seminar zum pi-Kalkül betreut von Andreas Rossberg π

description

verfasst von Eyad Alkassar. Seminar zum pi-Kalkül betreut von Andreas Rossberg. 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. WARUM TYPEN?. Motivation. - PowerPoint PPT Presentation

Transcript of TYPEN UND OBJEKTE im Pi-Kalkül

Page 1: TYPEN UND OBJEKTE im Pi-Kalkül

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN

Formalisieren diese Idee mit Hilfe Typkonstruktoren

Page 42: TYPEN UND OBJEKTE im Pi-Kalkül

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

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

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

TYPEN UND OBJEKTE IM PI-KALKÜLπ ERWEITERUNGENTYPKONSTRUKTOREN

Der wichtigste Typkonstruktor ist der Channel:

Page 46: TYPEN UND OBJEKTE im Pi-Kalkül

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TYPEN UND OBJEKTE IM PI-KALKÜLπ

DANKE