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

Slides:



Advertisements
Podobne prezentacje
Projektowanie Aplikacji Komputerowych
Advertisements

Typy w językach i systemach obiektowych (i nie tylko) Cześć 2.
C++ wykład 2 ( ) Klasy i obiekty.
Typy strukturalne Typ tablicowy.
Programowanie obiektowe
Programowanie obiektowe
Projektowanie bazy danych
Klasy i obiekty.
Static, const, volatile.
Generics w .NET 2.0 Łukasz Rzeszot.
Implementacja ekstensji klasy
© K.Subieta. Konstrukcja systemów obiektowych i rozproszonych 7, Folia 1 listopad 2004 Konstrukcja systemów obiektowych i rozproszonych Wykładowca: Kazimierz.
OBJECT PASCAL Marzena Szałas.
25/08/ Języki programowania 1 Piotr Górczyński Obiekty i zdarzenia.
Projektowanie systemów informacyjnych
© K.Subieta. Konstrukcja systemów obiektowych i rozproszonych 8, Folia 1 listopad 2004 Konstrukcja systemów obiektowych i rozproszonych Wykładowca: Kazimierz.
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy.
Modelowanie i język UML
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Kurs Pascala – spis treści
Marcin Kujawa Michał Łobarzewski
Wskaźniki. Definiowanie wskaźników Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Real; Przykłady: Wskaźnik.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Programowanie zorientowane obiektowo 1 Programowanie zorientowane obiektowo (object-oriented programming) jest to metodologia programowania bazująca na.
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Unified Modeling Language Wykład 3 Diagram klas
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
Podstawy C# Grupa .NET PO.
Automatyczne dereferencje w języku SBQL
Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Float; Przykład: Wskaźnik przechowuje adres obiektu wskazanego.
struct nazwa { lista składników }; Dostęp do składowych struktury Nazwa_Zmniennej_Strukturalnej. Nazwa_Składnika.
Podstawy programowania
Podstawy programowania II
Podstawy informatyki Struktury, operatory, wyjątki
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Programowanie obiektowe III rok EiT
STEROWANIE Ale nie tylko
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Projektowanie obiektowe
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Programowanie obiektowe 2013/2014
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Zmienne i typy danych w C#
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
Programowanie obiektowe
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Wzorce Projektowe w JAVA
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
E. Stemposz. UML i Analiza Obiektowa, Wykład 4, Slajd 1/20 Wykład 4 Model obiektowy (2) dr inż. Ewa Stemposz
Typy i metody sparametryzowane (generics) (c) Krzysztof Barteczko 2014.
Programowanie Obiektowe – Wykład 6
(według:
(c) Krzysztof Barteczko 2014
PGO Interfejsy Michail Mokkas.
Założenia projektowe Javy
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Przeciążanie metod i konstruktorów
Zapis prezentacji:

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

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

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

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

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};

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

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)

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

I mapowanie dla niej Obiekty złożone: <i Employee, Employee, [name  1, surname  1, salary  1, worksIn  [0..1], jobDescription  1 ]> powiązanie : Obiekty atomowe :

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

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ę

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 { }

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

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