1 / 75

TYPEN UND OBJEKTE im Pi-Kalkül

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.

nerice
Download Presentation

TYPEN UND OBJEKTE im Pi-Kalkül

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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? 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 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 [ Wright, Andrew K. und Matthias Felleisen 1994 ] 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

More Related