Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Annaleisa Bloedow Geändert vor über 11 Jahren
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.