Top Banner
Paweł Mantur Implementacja schematów i statycznej kontroli typów w systemie JLoXiM projekt rozwiązania 2009-11-12
72

Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

May 24, 2019

Download

Documents

dinhnga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

Paweł Mantur

Implementacja schematów i

statycznej kontroli typów w systemie JLoXiM

projekt rozwiązania

2009-11-12

Page 2: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

2

Schematy w bazach danych● Relacyjne bazy danych:

tabele, kolumny, typy danych, klucze itp.

Page 3: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

3

Schematy w bazach danych● Relacyjne bazy danych:

tabele, kolumny, typy danych, klucze itp.● XML:

DTD, XMLSchema

Page 4: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

4

Schematy w bazach danych● Relacyjne bazy danych:

tabele, kolumny, typy danych, klucze itp.● XML:

DTD, XMLSchema● Obiektowe bazy danych:

OMG IDL, ODMG ODL

Page 5: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

5

Rola schematów● Definiowanie zawartości bazy danych

Page 6: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

6

Rola schematów● Definiowanie zawartości bazy danych● Opisywanie zawartości

Page 7: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

7

Rola schematów● Definiowanie zawartości bazy danych● Opisywanie zawartości● Więzy integralności

Page 8: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

8

Rola schematów● Definiowanie zawartości bazy danych● Opisywanie zawartości● Więzy integralności● Użyteczne przy optymalizacji

Page 9: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

9

Rola schematów● Definiowanie zawartości bazy danych● Opisywanie zawartości● Więzy integralności● Użyteczne przy optymalizacji● Umożliwiają kontrolę typów

Page 10: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

10

● System typów

Komponenty

Page 11: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

11

● System typów● Schemat zewnętrzny:

język do definiowania schematów

Komponenty

Page 12: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

12

● System typów● Schemat zewnętrzny:

język do definiowania schematów● Reprezentacja wewnętrzna:

metabaza

Komponenty

Page 13: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

13

● System typów● Schemat zewnętrzny:

język do definiowania schematów● Reprezentacja wewnętrzna:

metabaza● Store + schema

Komponenty

Page 14: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

14

● System typów● Schemat zewnętrzny:

język do definiowania schematów● Reprezentacja wewnętrzna:

metabaza● Store + schema● Sygnatury

Komponenty

Page 15: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

15

● System typów● Schemat zewnętrzny:

język do definiowania schematów● Reprezentacja wewnętrzna:

metabaza● Store + schema● Sygnatury● Aparat statycznej kontroli typów

Komponenty

Page 16: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

16

● System typów● Schemat zewnętrzny:

język do definiowania schematów● Reprezentacja wewnętrzna:

metabaza● Store + schema● Sygnatury● Aparat statycznej kontroli typów● Schema code writer

Komponenty

Page 17: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

17

Typy proste atomowe:● string● boolean● int, decimal, real● date, time, datetime● binary● object

System typów

Page 18: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

18

Restrykcje typów prostychcreate constraint PositiveInteger restricts int { minValue: 0; defaultValue: 1;}

System typów

Page 19: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

19

Restrykcje typów prostychcreate constraint PositiveInteger restricts int { minValue: 0; defaultValue: 1;}

System typów

● restrykcje tworzą nowe typy atomowe

Page 20: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

20

Restrykcje typów prostychcreate constraint PositiveInteger restricts int { minValue: 0; defaultValue: 1;}

System typów

● restrykcje tworzą nowe typy atomowe

● opcje zależą od typu bazowego, który ograniczamy

Page 21: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

21

Restrykcje typów prostychcreate constraint PositiveInteger restricts int { minValue: 0; defaultValue: 1;}

System typów

● restrykcje tworzą nowe typy atomowe

● opcje zależą od typu bazowego, który ograniczamy

● np. dla typu string: length, regex, maxLength...

Page 22: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

22

Klasy● pola

System typów

Page 23: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

23

Klasy● pola● metody

System typów

Page 24: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

24

Klasy● pola● metody● wielodziedziczenie

System typów

Page 25: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

25

Klasy● pola● metody● wielodziedziczenie● role

System typów

Page 26: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

26

Klasy● pola● metody● wielodziedziczenie● role● nazwa obiektów będących instancj

System typów

Page 27: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

27

Klasy● pola● metody● wielodziedziczenie● role● nazwa obiektów będących instancją● lista eksportowa

System typów

Page 28: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

28

Klasy● pola● metody● wielodziedziczenie● role● nazwa obiektów będących instancją● lista eksportowa● więzy integralności

System typów

Page 29: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

29

Liczebności● [0..1] albo ? - wartość opcjonalna

System typów

Page 30: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

30

Liczebności● [0..1] albo ? - wartość opcjonalna● [1..1] - wartość wymagana (domyślne)

System typów

Page 31: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

31

Liczebności● [0..1] albo ? - wartość opcjonalna● [1..1] - wartość wymagana (domyślne)● [0..*] - kolekcja

System typów

Page 32: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

32

Liczebności● [0..1] albo ? - wartość opcjonalna● [1..1] - wartość wymagana (domyślne)● [0..*] - kolekcja● [1..*] - niepusta kolekcja

System typów

Page 33: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

33

Predefiniowane typy złożone

xml ● wymuszanie struktury XML● wsparcie dla DOM, XSLT, Xquery

System typów

Page 34: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

34

Predefiniowane typy złożone

xml ● wymuszanie struktury XML● wsparcie dla DOM, XSLT, Xquery

any – luźna struktuta● brak narzyconej struktury● schemat dynamiczny

System typów

Page 35: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

35

Enumeratory

create enum AtomicType { int, string, bool, datetime, binary = 7 }

● wewnętrznie jest to int● domyślna numeracja od 0

System typów

Page 36: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

36

Constraints (więzy integralności)● Wewnątrz definicji klasy

System typów

constraint cardinalityConstraint "minOccurences <= maxOccurences" on maxOccurences, minOccurences;

Page 37: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

37

Constraints (więzy integralności)● Wewnątrz definicji klasy

System typów

constraint cardinalityConstraint "minOccurences <= maxOccurences" on maxOccurences, minOccurences;

● Poza definicją klasyconstraint cardinalityConstraint restricts FieldType"minOccurences <= maxOccurences" on maxOccurences, minOccurences;

Page 38: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

38

● Nieoficjalana nazwa JLoXiM ODL

Schemat zewnętrzny

Page 39: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

39

● Nieoficjalna nazwa JLoXiM ODL● Rozszerzenie istniejącej gramatyki

Schemat zewnętrzny

Page 40: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

40

● Nieoficjalna nazwa JLoXiM ODL● Rozszerzenie istniejącej gramatyki● Tworzenie/usuwanie klas, enumeratorów,

restrykcji, więzów

Schemat zewnętrzny

Page 41: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

41

● Nieoficjalna nazwa JLoXiM ODL● Rozszerzenie istniejącej gramatyki● Tworzenie/usuwanie klas, enumeratorów,

restrykcji, więzów● Gtramatyka dostępna na wiki:

http://jloxim.mimuw.edu.pl/redmine/wiki/jloxim/SchemaGrammar

Schemat zewnętrzny

Page 42: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

42

● Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego

Metabaza

Page 43: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

43

● Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego

● Zdefiniowanie schematu dla składu obiektów poprzez określenie typu (zazwyczaj klasy) dla korzenia

Metabaza

Page 44: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

44

● Część składu obiektów, gdzie pamiętamy definicje wprowadzone za pomocą schematu zewnętrznego

● Zdefiniowanie schematu dla składu obiektów poprzez określenie typu (zazwyczaj klasy) dla korzenia

● Możliwość automatycznego dodania przestrzeni systemowej (metabazy) do schematu zewnętrznego

Metabaza

Page 45: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

45

● Odpytywanie metabazy:sys.classes where name = „MojaKlasa”sys.schemaInfo.rootClass.name

Organizacja metabazy

Page 46: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

46

● Odpytywanie metabazy:sys.classes where name = „MojaKlasa”sys.schemaInfo.rootClass.name

● Schemat metabazy w postaci diagramu UML...

Organizacja metabazy

Page 47: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

47

Page 48: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

48

● Odpytywanie metabazy:sys.classes where name = „MojaKlasa”sys.schemaInfo.rootClass.name

● Schemat metabazy w postaci diagramu UML

● Schemat metabazy zapisany w JLoXiM ODL na wiki

Organizacja metabazy

Page 49: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

49

● Skład obiektów ze świadomością posiadania schematu

Store + schema

Page 50: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

50

● Skład obiektów ze świadomością posiadania schematu

● Kontrola operacji modyfikujących dane

Store + schema

Page 51: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

51

● Skład obiektów ze świadomością posiadania schematu

● Kontrola operacji modyfikujących dane● Odczytywanie informacji o typach z

metabazy

Store + schema

Page 52: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

52

● Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury

Sygnatury

Page 53: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

53

● Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury

● Sygnatury opisują wartości przetwarzane w czasie wykonania

Sygnatury

Page 54: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

54

● Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury

● Sygnatury opisują wartości przetwarzane w czasie wykonania

● Niosą informację o typie lub możliwych typach obiektów

Sygnatury

Page 55: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

55

● Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury

● Sygnatury opisują wartości przetwarzane w czasie wykonania

● Niosą informację o typie lub możliwych typach obiektów

● Można symulować wykonanie zapytania wykonując je na metabazie

Sygnatury

Page 56: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

56

● Podczas kontroli statycznej nie znamy wartości obiektów, ale znamy ich sygnatury

● Sygnatury opisują wartości przetwarzane w czasie wykonania

● Niosą informację o typie lub możliwych typach obiektów

● Można symulować wykonanie zapytania wykonując je na metabazie

● Zamiast na rzeczywistych wartościach operujemy na sygnaturach

Sygnatury

Page 57: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

57

● Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów

Statyczna kontrola typów

Page 58: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

58

● Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów

● Zamiast wartości – sygnatury

Statyczna kontrola typów

Page 59: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

59

● Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów

● Zamiast wartości – sygnatury● Wnioskowanie o typie wyniku na podstawie

tabel decyzyjnych

Statyczna kontrola typów

Page 60: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

60

● Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów

● Zamiast wartości – sygnatury● Wnioskowanie o typie wyniku na podstawie

tabel decyzyjnych● Nie o wszystkim da się zdecydować

podczas kontroli statycznej

Statyczna kontrola typów

Page 61: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

61

● Symulowanie wykonania: statyczny stos środowisk i statyczny stos rezultatów

● Zamiast wartości – sygnatury● Wnioskowanie o typie wyniku na podstawie

tabel decyzyjnych● Nie o wszystkim da się zdecydować

podczas kontroli statycznej● Pół-mocna kontrola typów

Statyczna kontrola typów

Page 62: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

62

● Tablica decyzyjna dla każdego operatora

Tablice decyzyjne

Page 63: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

63

● Tablica decyzyjna dla każdego operatora● Wnioskowanie o typie wyniku na podstawie

typu argumentów

Tablice decyzyjne

Page 64: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

64

● Tablica decyzyjna dla każdego operatora● Wnioskowanie o typie wyniku na podstawie

typu argumentów● Czasami zbiór możliwych typów (wariant)

Tablice decyzyjne

Page 65: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

65

● Tablica decyzyjna dla każdego operatora● Wnioskowanie o typie wyniku na podstawie

typu argumentów● Czasami zbiór możliwych typów (wariant)● Czasami odłożenie sprawdzenia

poprawności typologicznej do czasu wykonania

Tablice decyzyjne

Page 66: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

66

● Tablica decyzyjna dla każdego operatora● Wnioskowanie o typie wyniku na podstawie

typu argumentów● Czasami zbiór możliwych typów (wariant)● Czasami odłożenie sprawdzenia

poprawności typologicznej do czasu wykonania

● Łatwa zmiana zachowania aparatu kontroli, poprzez zmianę tabel decyzyjnych

Tablice decyzyjne

Page 67: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

67

● Tablica decyzyjna dla każdego operatora● Wnioskowanie o typie wyniku na podstawie

typu argumentów● Czasami zbiór możliwych typów (wariant)● Czasami odłożenie sprawdzenia

poprawności typologicznej do czasu wykonania

● Łatwa zmiana zachowania aparatu kontroli, poprzez zmianę tabel decyzyjnych

● Wiele decyzji to kwestia upodobań

Tablice decyzyjne

Page 68: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

68

● Eksport metabazy do postaci zewnętrznej

Schema code writer

Page 69: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

69

● Eksport metabazy do postaci zewnętrznej● Generowanie bibliotek klienckich

Schema code writer

Page 70: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

70

● Eksport metabazy do postaci zewnętrznej● Generowanie bibliotek klienckich● Dostarczenie API umożliwiającego pisanie

plug-in'ów generujących różne formaty (XML, Java, C#, UML, ...)

Schema code writer

Page 71: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

71

● Eksport metabazy do postaci zewnętrznej● Generowanie bibliotek klienckich● Dostarczenie API umożliwiającego pisanie

plug-in'ów generujących różne formaty (XML, Java, C#, UML, ...)

● Implementacja eksportu do JLoXiM ODL

Schema code writer

Page 72: Implementacja schematów i statycznej kontroli typów w ...stencel.mimuw.edu.pl/sem/sbd1/jloxim-types.pdfPaweł Mantur Implementacja schematów i statycznej kontroli typów w systemie

72

Dziękuję.