Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Rachunek Lambda + Obiektowość część 1. – motywacja

Podobne prezentacje


Prezentacja na temat: "Rachunek Lambda + Obiektowość część 1. – motywacja"— Zapis prezentacji:

1 Rachunek Lambda + Obiektowość część 1. – motywacja
na podstawie: [1] A Lambda Calculus of Objects and Method Specialization [2] Matching [for] the Lambda Calculus of Objects

2 Plan Prezentacji Przykłady motywujące
Formalizm: Rachunek Lambda z Obiektami System Typów dla powyższego

3 Przykłady motywujące

4 JavaScript, Przykład 1. Metody niezdefiniowane w obiekcie (message-not-understood)

5 JavaScript, Przykład 2. Specjalizacja metod klasowych (method specialization)
cp:

6 Cele 1. papieru zamodelować rozszerzanie obiektów...
… pamiętając o specjalizacji metod zrozumieć jak zmienia się znaczenie metody w zależności od zmiany this / self przy dziedziczeniu analiza znaczenia metody w oderwaniu od miejsca deklaracji

7 Cel: formalizm – abstrakcja obiektowości
Środek: rachunek lambda rozszerzony o obiekty

8 Klasy vs Prototypy obiektowość
tworzenie obiektów wg klas (class-based) Java, Python, Smalltalk, ... tworzenie obiektów wg instancji (delegation-based, prototype-based) JavaScript, Self, ...

9 Rachunek lambda + obiekty (Untyped Lambda Calculus of Objects)

10 Rachunek lambda + obiekty (Untyped Lambda Calculus of Objects) Przykład

11 Rachunek lambda + obiekty (Untyped Lambda Calculus of Objects)
Funkcyjna forma rozszerzania obiektów: : Object → Method → Object

12 Rachunek lambda + obiekty (Untyped Lambda Calculus of Objects)
Modelowanie self za pomocą λ-abstrakcji (funkcji):

13 obserwacje na temat Rachunku Lambda z Obiektami

14 Wzajemnie rekursywne metody (mutually recursive methods)
chcemy wykrywać takie błędy: x niezdefiniowane!: ok: problem gdy 2 metody: m() {n()}, n() {m()} są wzajemnie rekursywne

15 Rachunku Lambda z Obiektowością
System typów dla Rachunku Lambda z Obiektowością Przykład wyprowadzenia

16

17

18 Reguły typowania obiektów
czyli specjalizacja raz jeszcze (ale teraz formalniej)

19 Java, Przykład 2. Specjalizacja metod klasowych (method specialization)
cp:

20 Reguły typowania obiektów

21 Interpretacja metody poza kontekstem jej definicji

22 Specjalizacja metod klasowych – inne prace
like Current zaproponowane do języka Eiffel Przykład 2.: nie trzeba rzutować cp.move() z Point na ColoredPoint W.R. Cook. A proposal for making Eiffel type- safe. W European Conf. on Object-Oriented Programming, strony 57–72, 1989.

23 Specjalizację metod opisano także w:
J.C. Mitchell. Toward a typed foundation for method specialization and inheritance. W Proc. 17th ACM Symp. on Principles of Programming Languages, strony 109–124, Styczeń 1990.

24 obserwacje na temat Systemu Typów dla Rachunku Lambda z Obiektami

25 [1] pokazuje poprawność systemu typów
[1]: problem "czy typowalne termy są równe" jest nierozstrzygalny w tym systemie typów

26 pytania?

27 Bibliografia [1] Kathleen Fisher, Furio Honsell, John C. Mitchell. A Lambda Calculus of Objects and Method Specialization W Nordic Journal of Computing, 1(1):3–37 1994 [2] Viviana Bono, Michele Bugliesi. Matching [for] the Lambda Calculus of Objects W Theoretical Computer Science, 212(1-2):101–140 1999


Pobierz ppt "Rachunek Lambda + Obiektowość część 1. – motywacja"

Podobne prezentacje


Reklamy Google