Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Statyczna kontrola typów w SBQL Rafał Hryniów Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa

Podobne prezentacje


Prezentacja na temat: "Statyczna kontrola typów w SBQL Rafał Hryniów Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa"— Zapis prezentacji:

1 Statyczna kontrola typów w SBQL Rafał Hryniów Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa

2 Plan prezentacji Typy w modelu M0 Rozszerzenia dla modelu M1 Dalsze prace

3 Typy w modelu M0 Typy proste Typy złożone Zgodność typów Liczności i atrybuty

4 Typy proste Pięć typów prostych  int  float  boolean  string  date Możliwość tworzenia nowych typów prostych typedef pesel = int;

5 Typy złożone Słowo kluczowe struct Dowolna złożoność struktury typedef Employee = struct { name : string; age : int; }; employee : Employee; employee2 : struct { name : string; age :int};

6 Zgodność W przypadku typów prostych – nazwowa typedef PESEL = int; pesel : PESEL; liczba : int; pesel = liczba – błąd typu W przypadku typów złożonych – strukturalne employee2 = employee – typologicznie poprawne

7 Atrybuty Liczność (UML)  [0..1]  [1..1] – domyślna  [0..*]  [1..*] Mutowalność Czy zbiór jest uporządkowany (ordered) Czy jest to zbiór (unique)

8 Przykładowa struktura Employee : struct { name : string; surname : string; salary : float; worksIn : ref to Department[0..1]; jobDescription : struct { jobName : string; jobDesc : string; }

9 I mapowanie dla niej Obiekty złożone: powiązanie : Obiekty atomowe :

10 Problemy dla modelu M1 Dziedziczenie – co widzi programista Podtypowanie dla metod Polimorfizm Operacje imperatywne

11 Model M1 –co z dziedziczeniem Co powinien widzieć programista w przypadku gdy odwołujemy się do nadklasy obiektu  Tylko atrybuty z nadklasy – typologicznie poprawne  Wszystkie atrybuty -co z kontrolą typologiczną  Dodać operator rzutowania i możliwość sprawdzenia typu przez programistę

12 Problem z podtypami Kowariancja Animal { eat(Food) } Cow extends Animal { eat(Grass) } Animal a = new Cow(); Food f = new Hamburger(); a.eat(f); //Food poisoning Kontrawariancja Animal { eat(Grass) } Cow extends Animal { eat(Food) } Bardzo mało elastyczne Inwariancja Animal { eat(Food) } Cow extends Animal { eats(Food) } Food { } Grass extends Food { }

13 Polimorfizm Uniwersalny  Parametryczny  Inkluzyjny Ad hoc  Koercje  Przeciążenia

14 Dalsze prace Obsługa operatorów imperatywnych Procedury i metody Typy w modelach M2 i M3


Pobierz ppt "Statyczna kontrola typów w SBQL Rafał Hryniów Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa"

Podobne prezentacje


Reklamy Google