Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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

2 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

3 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 …

4 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 …

5 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

6 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 Fehler

7 TYPEN UND OBJEKTE IM PI-KALKÜL WARUM TYPEN? Beispiele Vermeidung von Laufzeitfehler Was sind Laufzeitfehler im pi-Kalkül? Fügen Fehlerregel zu Reaktionsregeln hinzu:

8 TYPEN UND OBJEKTE IM PI-KALKÜL WARUM TYPEN? Beispiele Wir formulieren diese Eigenschaft ein wenig anders: Eigenschaft P ROGRESS : Wohlgetypte Terme des pi-Kalküls können in einem Schritt nicht zu fehler reagieren Was bedeutet wohlgetypt?

9 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

10 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-vergesslich 3.Für jeden Subterm der Form z(y).Q ist Q y-vergesslich gilt: wenn S S, dann hat S Eigenschaften 1-3

11 TYPEN UND OBJEKTE IM PI-KALKÜL WARUM TYPEN? Beispiele Wir formulieren die Eigenschaft anders: Eigenschaft P RESERVATION : Wohlgetypt ist stabil unter Reaktion (und struktureller Kongruenz). Was bedeutet wohlgetypt? Eigenschaft P ROGRESS : Wohlgetypte Terme des pi-Kalküls können in einem Schritt nicht zu fehler reagieren Eigenschaft S OUNDNESS : Wohlgetypte Terme des pi-Kalküls reagieren nie zu fehler. + = [ Wright, Andrew K. und Matthias Felleisen 1994 ]

12 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 Namensvektoren werden Typvektoren zugewiesen:

13 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? EINFÜHRUNG VON TYPEN

14 TYPEN UND OBJEKTE IM PI-KALKÜL Erste Version Definition von Typdisziplin Definition wohlgetypt EINFÜHRUNG VON TYPEN

15 TYPEN UND OBJEKTE IM PI-KALKÜL Erste Version Definition von Typdisziplin Definition wohlgetypt EINFÜHRUNG VON TYPEN

16 TYPEN UND OBJEKTE IM PI-KALKÜL Erste Version Definition von Typdisziplin Definition wohlgetypt EINFÜHRUNG VON TYPEN

17 TYPEN UND OBJEKTE IM PI-KALKÜL Erste Version Definition von Typdisziplin Definition wohlgetypt EINFÜHRUNG VON TYPEN

18 TYPEN UND OBJEKTE IM PI-KALKÜL BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools EINFÜHRUNG VON TYPEN

19 TYPEN UND OBJEKTE IM PI-KALKÜL BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools Typen und ihre Disziplin EINFÜHRUNG VON TYPEN

20 TYPEN UND OBJEKTE IM PI-KALKÜL BEISPIEL FÜR DEFINITIONEN Beispiel: Typen von Bools Typen und ihre Disziplin EINFÜHRUNG VON TYPEN

21 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Erinnerung Beispiel für Definitionen EINFÜHRUNG VON TYPEN

22 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

23 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

24 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

25 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

26 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

27 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

28 TYPEN UND OBJEKTE IM PI-KALKÜL Beispiel: Mautsystem Beispiel für Definitionen EINFÜHRUNG VON TYPEN

29 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? Kontrollieren das Verhalten von Prozessen: Für ein einfaches Systems S und folgenden Eigenschaften 1.Es verwaltet x 2.Es ist x-vergesslich 3.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

30 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? 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-vergesslich 3.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

31 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? Eigenschaft S OUNDNESS : Wohlgetypte Terme des pi-Kalküls können nicht zu fehler reagieren. (ohne Beweis) EINFÜHRUNG VON TYPEN

32 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? Eigenschaft S OUNDNESS : Wohlgetypte Terme des pi-Kalküls können nicht zu fehler reagieren. (ohne Beweis) EINFÜHRUNG VON TYPEN

33 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? besseres Verständnis des pi-Kalküls wie wird der getypte pi-Kalkül zu CCS? EINFÜHRUNG VON TYPEN

34 TYPEN UND OBJEKTE IM PI-KALKÜL Was bringts? Unterteilen in und : Menge aller Namen die als Link auftauchen dürfen Menge elementarer Typen pi-Kalkül kontrollieren Nur noch Daten übertragen (CCS mit Value-Übertragung) EINFÜHRUNG VON TYPEN

35 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Betrachten noch mal die Bool Typen

36 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen Betrachten noch mal die Bool Typen

37 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen Betrachten noch mal die Bool Typen

38 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Erinnern uns noch mal an Listen

39 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Würden gerne einen Typkonstruktor für Listen definieren Erinnern uns noch mal an Listen

40 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Würden gerne einen Typkonstruktor für Listen definieren Erinnern uns noch mal an Listen

41 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Formalisieren diese Idee mit Hilfe Typkonstruktoren

42 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Formalisieren diese Idee mit Hilfe Typkonstruktoren Eine Typsprache hat Elemente der Form

43 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Formalisieren diese Idee mit Hilfe Typkonstruktoren Eine Typsprache hat Elemente der Form C aus der Menge der Typkonstruktoren ist mit Stelligkeit n

44 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Formalisieren diese Idee mit Hilfe Typkonstruktoren Eine Typsprache hat Elemente der Form Disziplin für Typkonstruktoren wird über Typvariablen s i definiert: C aus der Menge der Typkonstruktoren ist mit Stelligkeit n

45 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Der wichtigste Typkonstruktor ist der Channel:

46 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Der wichtigste Typkonstruktor ist der Channel:

47 TYPEN UND OBJEKTE IM PI-KALKÜL ERWEITERUNGEN TYPKONSTRUKTOREN Der wichtigste Typkonstruktor ist der Channel: Anwendung von C HAN bei Listen

48 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL Beispiel für die Mächtigkeit des pi-Kalküls

49 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL Beispiel für die Mächtigkeit des pi-Kalküls Eine nicht-triviale Anwendung unserer Typen

50 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL Beispiel für die Mächtigkeit des pi-Kalküls Eine nicht-triviale Anwendung unserer Typen Folgende Symbole werden benutzt

51 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE 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

52 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP KLASSE A KLASSE B Methoden des Objekts Variablen des Objekts Objekte Klassen BOPL - PROGRAMME

53 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP KLASSE A KLASSE B Objekt 1Objekt 2 Objekt 3 Methoden des Objekts Variablen des Objekts Objekte Klassen BOPL - PROGRAMME

54 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP KLASSE A KLASSE B Objekt 1Objekt 2 Objekt 3 Methodenaufruf BOPL - PROGRAMME Methoden des Objekts Variablen des Objekts Objekte Klassen

55 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP Class A V AR V1: A, V2: B Klassendeklaration A: class-dec A M ETHODE M1(X1: B): A = S1 M ETHODE M2(X1: A, X2: A): B = S2 AUFBAU VON POPEL PROGRAMMEN

56 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL SERVER A kAkA Klasse als Server, Dienst fordert neues Objekt über Adress k A

57 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL SERVER A kAkA a Server legt neues Objekt an und sendet als Antwort Adresse a des Objekts a

58 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL SERVER A kAkA a m 1 m 2 m1, m2 Benutzer fordert von Objekt A Methoden an

59 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL Über die Adressen der Methoden ruft Benutzer diese auf SERVER A kAkA a m 1 m 2 r und erhält Adresse des Rückgabe wertes x 1..

60 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Class A V AR V1: A, V2: B Klassendeklaration A M ETHODE M1(X1: B): A M ETHODE M2(X1: A, X2: A): B pi-Kalkül Namen

61 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Class A V AR V1: A, V2: B Klassendeklaration A M ETHODE M1(X1: B): A M ETHODE M2(X1: A, X2: A): B pi-Kalkül Namen

62 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Class A V AR V1: A, V2: B Klassendeklaration A M ETHODE M1(X1: B): A M ETHODE M2(X1: A, X2: A): B pi-Kalkül Namen

63 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Class A V AR V1: A, V2: B Klassendeklaration A M ETHODE M1(X1: B): A M ETHODE M2(X1: A, X2: A): B pi-Kalkül Namen

64 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

65 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

66 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

67 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

68 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

69 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP Modellierung der Klassendefinition Zugriff auf neues Objekt a über Namen k a SERVER A kAkA a a

70 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP Modellierung eines Objekts a jedes Objekt hat seine eigenen Methoden und Variablen Variablen werden zunächst mit Null initialisiert SERVER A kAkA a a

71 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP Modellierung der Methoden Der Name a wird wie als Selbstreferenz (wie self) verwendet SERVER A kAkA am1m2m1m2 r x 1,x 2

72 TYPEN UND OBJEKTE IM PI-KALKÜL ANWENDUNGSBSP OBJEKTE IN PI Was haben wir nicht modelliert? Subtyping Vererbung, … Was haben wir modelliert? getypte Methoden Enkapsulierung von Daten Parallele Berechnung

73 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

74 TYPEN UND OBJEKTE IM PI-KALKÜL LITERATUR COMMUNICATING 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

75 TYPEN UND OBJEKTE IM PI-KALKÜL DANKE


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen