Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar zum pi-Kalkül betreut von Andreas Rossberg

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar zum pi-Kalkül betreut von Andreas Rossberg"—  Präsentation transkript:

1 Seminar zum pi-Kalkül betreut von Andreas Rossberg
verfasst von Eyad Alkassar Seminar zum pi-Kalkül betreut von Andreas Rossberg TYPEN UND OBJEKTE im Pi-Kalkül

2 INHALT 1. Warum Typen? 4. Anwendung: Objekte
2. Einführung von einfachen Typen 3. Erweiterungen 4. Anwendung: Objekte 5. Zusammenfassung & Ausblick

3 WARUM TYPEN? Motivation Vermeidung von Laufzeitfehlern
besseres Verständnis von Verhalten von Programmen Dokumentation von Quellcode Optimierung von Compilern

4 WARUM TYPEN? Motivation Vermeidung von Laufzeitfehlern
besseres Verständnis von Verhalten von Programmen Dokumentation von Quellcode Optimierung von Compilern

5 WARUM TYPEN? Beispiele Vermeidung von Laufzeitfehler
Was sind Laufzeitfehler im pi-Kalkül? Bisher haben wir noch keine Übergänge gesehen, daher betrachten Reaktionen Beispiel im polyadischen Kalkül

6 WARUM TYPEN? Beispiele Fehler Vermeidung von Laufzeitfehler
Was sind Laufzeitfehler im pi-Kalkül? Bisher haben wir noch keine Übergänge gesehen, daher betrachten Reaktionen Beispiel im polyadischen Kalkül Fehler

7 WARUM TYPEN? Beispiele Vermeidung von Laufzeitfehler
Was sind Laufzeitfehler im pi-Kalkül? Fügen Fehlerregel zu Reaktionsregeln hinzu:

8 WARUM TYPEN? Beispiele Wir formulieren diese Eigenschaft ein wenig anders: Eigenschaft PROGRESS: Wohlgetypte Terme des pi-Kalküls können in einem Schritt nicht zu fehler reagieren Was bedeutet wohlgetypt?

9 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 WARUM TYPEN? Beispiele Kontrollieren das Verhalten von Prozessen:
Für ein einfaches Systems S und folgenden Eigenschaften Es verwaltet x Es ist x-vergesslich Für jeden Subterm der Form z(y).Q ist Q y-vergesslich gilt: wenn S S‘, dann hat S‘ Eigenschaften 1-3

11 WARUM TYPEN? + = Beispiele Wir formulieren die Eigenschaft anders:
[ Wright, Andrew K. und Matthias Felleisen ] Wir formulieren die Eigenschaft anders: Eigenschaft PRESERVATION: Wohlgetypt ist stabil unter Reaktion (und struktureller Kongruenz). + Eigenschaft PROGRESS: Wohlgetypte Terme des pi-Kalküls können in einem Schritt nicht zu fehler reagieren = Eigenschaft SOUNDNESS: Wohlgetypte Terme des pi-Kalküls reagieren nie zu fehler. Was bedeutet wohlgetypt?

12 EINFÜHRUNG VON TYPEN Erste Version
Namen können als Daten ausgetauscht werden Kategorisierung dieser Namen in Typen Namensvektoren werden Typvektoren zugewiesen:

13 EINFÜHRUNG VON TYPEN Erste Version Namen auch Kanäle für andere Namen
Namen welchen Typs darf ein Name eines bestimmten Typs übermitteln?

14 EINFÜHRUNG VON TYPEN Erste Version Definition von Typdisziplin
Definition wohlgetypt

15 EINFÜHRUNG VON TYPEN Erste Version Definition von Typdisziplin
Definition wohlgetypt

16 EINFÜHRUNG VON TYPEN Erste Version Definition von Typdisziplin
Definition wohlgetypt

17 EINFÜHRUNG VON TYPEN Erste Version Definition von Typdisziplin
Definition wohlgetypt

18 EINFÜHRUNG VON TYPEN BEISPIEL FÜR DEFINITIONEN
Beispiel: Typen von Bools

19 EINFÜHRUNG VON TYPEN BEISPIEL FÜR DEFINITIONEN
Beispiel: Typen von Bools Typen und ihre Disziplin

20 EINFÜHRUNG VON TYPEN BEISPIEL FÜR DEFINITIONEN
Beispiel: Typen von Bools Typen und ihre Disziplin

21 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem
Erinnerung

22 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

23 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

24 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

25 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

26 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

27 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

28 EINFÜHRUNG VON TYPEN Beispiel für Definitionen Beispiel: Mautsystem

29 EINFÜHRUNG VON TYPEN Was bringt‘s?
Kontrollieren das Verhalten von Prozessen: Für ein einfaches Systems S und folgenden Eigenschaften Es verwaltet x Es ist x-vergesslich Für jeden Subterm der Form z(y).Q ist Q y-vergesslich gilt: wenn S S‘, dann hat S‘ Eigenschaften 1-3

30 EINFÜHRUNG VON TYPEN Was bringt‘s?
Kontrollieren das Verhalten von Prozessen: Für ein wohlgetyptes einfaches Systems S mit x:A und folgenden Eigenschaften Es verwaltet x Es ist x-vergesslich 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

31 EINFÜHRUNG VON TYPEN Was bringt‘s?
Eigenschaft SOUNDNESS: Wohlgetypte Terme des pi-Kalküls können nicht zu fehler reagieren. (ohne Beweis)

32 EINFÜHRUNG VON TYPEN Was bringt‘s?
Eigenschaft SOUNDNESS: Wohlgetypte Terme des pi-Kalküls können nicht zu fehler reagieren. (ohne Beweis)

33 EINFÜHRUNG VON TYPEN Was bringt‘s? besseres Verständnis des pi-Kalküls
wie wird der getypte pi-Kalkül zu CCS?

34 EINFÜHRUNG VON TYPEN Was bringt‘s? pi-Kalkül kontrollieren
Nur noch Daten übertragen (CCS mit Value-Übertragung) Unterteilen in und : Menge aller Namen die als Link auftauchen dürfen Menge elementarer Typen

35 ERWEITERUNGEN TYPKONSTRUKTOREN Betrachten noch mal die Bool Typen

36 ERWEITERUNGEN TYPKONSTRUKTOREN Betrachten noch mal die Bool Typen
Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen

37 ERWEITERUNGEN TYPKONSTRUKTOREN Betrachten noch mal die Bool Typen
Problem: TRUE und FALSE sind prinzipiell gleich, wollen sie zu einem Sort zusammen- fassen

38 ERWEITERUNGEN TYPKONSTRUKTOREN Erinnern uns noch mal an Listen

39 ERWEITERUNGEN TYPKONSTRUKTOREN Erinnern uns noch mal an Listen
Würden gerne einen Typkonstruktor für Listen definieren

40 ERWEITERUNGEN TYPKONSTRUKTOREN Erinnern uns noch mal an Listen
Würden gerne einen Typkonstruktor für Listen definieren

41 ERWEITERUNGEN TYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren

42 ERWEITERUNGEN TYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren Eine Typsprache hat Elemente der Form

43 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 ERWEITERUNGEN TYPKONSTRUKTOREN
Formalisieren diese Idee mit Hilfe Typkonstruktoren Eine Typsprache hat Elemente der Form C aus der Menge der Typkonstruktoren ist mit Stelligkeit n Disziplin für Typkonstruktoren wird über Typvariablen si definiert:

45 ERWEITERUNGEN TYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel:

46 ERWEITERUNGEN TYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel:

47 ERWEITERUNGEN TYPKONSTRUKTOREN
Der wichtigste Typkonstruktor ist der Channel: Anwendung von CHAN bei Listen

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

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

50 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 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 ANWENDUNGSBSP BOPL - PROGRAMME KLASSE A KLASSE B Methoden des Objekts
Variablen des Objekts Objekte Klassen BOPL - PROGRAMME KLASSE A KLASSE B

53 ANWENDUNGSBSP BOPL - PROGRAMME KLASSE A KLASSE B Objekt 1 Objekt 2
Methoden des Objekts Variablen des Objekts Objekte Klassen BOPL - PROGRAMME KLASSE A KLASSE B Objekt 1 Objekt 2 Objekt 3

54 ANWENDUNGSBSP BOPL - PROGRAMME KLASSE A KLASSE B Objekt 1 Objekt 2
Methoden des Objekts Variablen des Objekts Objekte Klassen BOPL - PROGRAMME KLASSE A KLASSE B Objekt 1 Objekt 2 Objekt 3 Methodenaufruf

55 ANWENDUNGSBSP AUFBAU VON POPEL PROGRAMMEN
Klassendeklaration A: class-decA Class A VAR V1: A, V2: B METHODE M1(X1: B): A = S1 METHODE M2(X1: A, X2: A): B = S2

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

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

58 ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL kA Benutzer fordert von Objekt A
SERVER A Benutzer fordert von Objekt A Methoden an kA a m1 m2 m1, m2

59 ANWENDUNGSBSP OBJEKTE IM PI-KALKÜL kA a m1 m2
SERVER A kA a m1 m2 r Über die Adressen der Methoden ruft Benutzer diese auf und erhält Adresse des Rückgabe wertes x1..

60 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Klassendeklaration A
pi-Kalkül Namen Class A VAR V1: A, V2: B METHODE M1(X1: B): A METHODE M2(X1: A, X2: A): B

61 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Klassendeklaration A
pi-Kalkül Namen Class A VAR V1: A, V2: B METHODE M1(X1: B): A METHODE M2(X1: A, X2: A): B

62 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Klassendeklaration A
pi-Kalkül Namen Class A VAR V1: A, V2: B METHODE M1(X1: B): A METHODE M2(X1: A, X2: A): B

63 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Klassendeklaration A
pi-Kalkül Namen Class A VAR V1: A, V2: B METHODE M1(X1: B): A METHODE M2(X1: A, X2: A): B

64 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

65 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

66 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

67 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

68 ANWENDUNGSBSP ÜBERTRAGUNG VON KLASSEN Welche Typen haben unsere Namen?

69 ANWENDUNGSBSP Modellierung der Klassendefinition
SERVER A kA a Modellierung der Klassendefinition Zugriff auf neues Objekt a über Namen ka

70 ANWENDUNGSBSP Modellierung eines Objekts a
SERVER A kA a Modellierung eines Objekts a jedes Objekt hat seine eigenen Methoden und Variablen Variablen werden zunächst mit Null initialisiert

71 ANWENDUNGSBSP Modellierung der Methoden
SERVER A kA a m1m2 r x1,x2 Modellierung der Methoden Der Name a wird wie als Selbstreferenz (wie self) verwendet

72 ANWENDUNGSBSP OBJEKTE IN PI Was haben wir modelliert? getypte Methoden
Enkapsulierung von Daten Parallele Berechnung Was haben wir nicht modelliert? Subtyping Vererbung, …

73 ZUSAMMENFASSUNG Typen helfen uns Verhalten von Prozessen einzuschränken und besser zu verstehen 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 Den pi-Kalkül kann man (fast) wie eine höhere Programmiersprache benutzen.

74 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 DANKE


Herunterladen ppt "Seminar zum pi-Kalkül betreut von Andreas Rossberg"

Ähnliche Präsentationen


Google-Anzeigen