Integracja obiektowego jezyka zapytan z jezykiem programowania Java - Wcislo.pdf
(
1964 KB
)
Pobierz
Integracja obiektowego języka zapytań z językiem programowania Java
Wydział Inormatyki
Katedra Inżynierii Oprogramowania
Inżynieria Oprogramowania i Baz Danych
Emil Wcisło
Nr albumu 3122
Integracja obiektowego języka zapytań z językiem
programowania Java
Praca magisterska napisana
pod kierunkiem:
dr inż. Piotr Habela
Warszawa, maj 2010
2
Abstrakt
Niniejapracamagiterkajetpróbąrobudowypopularnegojykaprogramowania
Javaoobiektowy,mocnyalgorytmicnie,pryjanydlaużytkownikajykapytaoJyk
ten,tworonywoparciuoprełomowądlajykówapytaokoncepcjpodejcia
stosowego, realizuje pretwaraniedanychulotnychwpamicioperacyjnejStanowi on
odpowied na cieący i unaniem jyk LINQ, wprowadony do jyków
programowania platformy Microsoft .NET. Zakooconaukceem implementacja posiada
równieżwłaciwoci niedotpnewjykuLINQWródnichnależywpomniedo
uniweralnociiminimalnocikładni,możliwocipretwaraniadowolnychobiektów
Java, mocnej kontroli typologicznej w czasie kompilacji i wysokiej wydajnociewaluacji
apytao W caie tworenia projektu otała opracowana i zaimplementowana
koncepcjabewowejintegracjidwóchjykówoodmiennejkładni,emantycei
naturze diałania Zotały również tworone unikalne rowiąania wród jyków
apytao opartych na podejciu toowym Do nich należą: translacja apytao na
wyokowydajne natywne operacje rodowika wykonawcego Java, uniwersalny,
pryjanyużytkownikowioperatorortowania,oraz generycnodkolekcji Te oraz inne
zaimplementowane użytecnecechypowalająwykorytadtworonyjykapytao
jakorowiąaniewieluproblemówwiąanychpretwaraniemdanych
3
Spistreści
Abstrakt.......................................................................................................................................2
pitreci ....................................................................................................................................3
1
Wprowadzenie.....................................................................................................................8
2
Stan sztuki w momencie pisania pracy..............................................................................10
2.1
LINQ ............................................................................................................................10
2.1.1
Opis .....................................................................................................................10
2.1.2
Krytyka ................................................................................................................10
2.2
JaQUe .........................................................................................................................11
2.2.1
Opis .....................................................................................................................11
2.2.2
Krytyka ................................................................................................................11
2.3
Queare........................................................................................................................11
2.3.1
Opis .....................................................................................................................11
2.3.2
Krytyka ................................................................................................................11
3
JykprogramowaniaJava ................................................................................................13
3.1
Wtp .........................................................................................................................13
3.2
Model obiektowy .......................................................................................................13
3.2.1
Klasy ....................................................................................................................13
3.2.2
Pakiety.................................................................................................................14
3.2.3
Interfejsy .............................................................................................................14
3.2.4
Dziedziczenie.......................................................................................................14
3.2.5
Hermetyzacja ......................................................................................................14
3.2.6
Kolekcje ...............................................................................................................14
3.2.7
Generycnod ......................................................................................................15
3.2.8
Referencje ...........................................................................................................15
3.3
CechyrodowikawykonawcegoprogramówJava..................................................16
3.3.1
Maszyna wirtualna ..............................................................................................16
3.3.2
utomatycneodmiecaniepamici ..................................................................16
3.3.3
Refleksja ..............................................................................................................17
4
Podtawyteoretycnebudowyobiektowegojykaapytao ..........................................18
4.1
Podtawoweałożenia ...............................................................................................18
4.2
Modele danych w SBQL..............................................................................................18
4
4.2.1
Model AS0 ...........................................................................................................19
4.2.2
Model AS1 ...........................................................................................................20
4.2.3
Model AS2 ...........................................................................................................20
4.2.4
Model AS3 ...........................................................................................................20
4.3
Stos QRES ...................................................................................................................20
4.4
Stos ENVS i funkcja
nested
.........................................................................................20
5
PodtawoweproblemywiąaneroereniemjykaJavaojykapytao...............22
5.1
Niegodnodimpedancji ............................................................................................22
5.1.1
kładnia ...............................................................................................................22
5.1.2
ytemtypów......................................................................................................22
5.1.3
emantykaiparadygmatyjyków ....................................................................23
5.1.4
Poziomy abstrakcji ..............................................................................................23
5.1.5
Przetwarzanie kolekcji ........................................................................................24
5.2
Zasada korespondencji...............................................................................................24
5.3
RoponawanietypówJava .......................................................................................25
5.4
Kompatybilnodwtecna ..........................................................................................26
6
OpijykaBQL4J ............................................................................................................27
6.1
Główneałożeniajyka ............................................................................................27
6.2
IntegracjajykiemJava ..........................................................................................27
6.2.1
Motywacje ..........................................................................................................27
6.2.2
Zgodnodmodelidanych ....................................................................................28
6.2.3
Integracjakładniowa .........................................................................................28
6.3
rchitekturarowiąania ...........................................................................................29
6.3.1
Ogólnychematarchitektury..............................................................................29
6.3.1.1
Faza preprocesingu......................................................................................29
6.3.1.2
Faza kompilacji.............................................................................................30
6.3.1.3
Faza uruchomienia.......................................................................................30
6.3.2
Budowadrewakładniapytania......................................................................32
6.3.3
tatycnaanaliaapytao ...................................................................................33
6.3.3.1
Motywacje ...................................................................................................33
6.3.3.2
Ewaluacjatatycnejanaliyapytao ..........................................................33
6.3.3.3
ygnaturyapytao .......................................................................................34
5
6.3.3.3.1
ValueSignature .........................................................................................34
6.3.3.3.2
BinderSignature ........................................................................................35
6.3.3.3.3
StructSignature.........................................................................................35
6.3.3.3.4
MethodSignature .....................................................................................35
6.3.3.3.5
ClassSignature ..........................................................................................35
6.3.3.3.6
ConstructorSignature ...............................................................................36
6.3.3.3.7
PackageSignature .....................................................................................36
6.3.3.4
Kontrola typologiczna ..................................................................................36
6.3.4
TranlacjaapytaoBQL4JnawyrażeniawjykuJava .....................................36
6.3.4.1
Tryb interpretera .........................................................................................36
6.3.4.2
Generacja kodu Java ....................................................................................37
6.3.4.2.1
Wariantkodemtożamym z kodem interpretera .................................38
6.3.4.2.2
Wariant z kodem bez stosu QRES............................................................38
6.3.4.2.3
WariantwcenymwiąaniemnawkodembetoówENVi
QRES
38
6.4
Model danych JAS0 w SBQL4J ....................................................................................39
6.4.1
Opiogólny .........................................................................................................39
6.4.2
Obiekt..................................................................................................................39
6.4.3
Referencja ...........................................................................................................39
6.4.4
Klasa ....................................................................................................................40
6.4.5
Metoda................................................................................................................40
6.4.6
Konstruktor .........................................................................................................40
6.5
Opioperatorówjyka .............................................................................................40
6.5.1
Operatory algebraiczne.......................................................................................40
6.5.1.1
Operatoryporównania ................................................................................40
6.5.1.2
Operatoryporównaniaakreowego ..........................................................41
6.5.1.3
Operatory logiczne ......................................................................................42
6.5.1.4
Operator negacji logicznej ...........................................................................43
6.5.1.5
Operator sprawdzenia typu.........................................................................43
6.5.1.6
Operatory arytmetyczne .............................................................................44
6.5.1.7
Operator tworzenia bagu ............................................................................45
6.5.1.7.1
Wariantdomylnąimplementacjąbagu................................................45
Plik z chomika:
smifos
Inne pliki z tego folderu:
Zalacznik_Cwicz2_PP_arytmet_logika.pdf
(133 KB)
zajecia2JTP.pdf
(181 KB)
wyklad3.pdf
(122 KB)
wstep_do_javy.pdf
(1979 KB)
wprowadzenieJava.pdf
(1229 KB)
Inne foldery tego chomika:
► Programy Diagnostyczne i Serwisowe
● Samochody - Chip-owanie
☀Kurs tworzenia stron internetowych
Android
Architektura
Zgłoś jeśli
naruszono regulamin