POLITECHNIKA ŚLĄSKA WYDZIAŁ INŻYNIERII MATERIAŁOWEJ I METALURGII. Edukacja Techniczno Informatyczna Studia dzienne. Praca dyplomowa inżynierska

Wielkość: px
Rozpocząć pokaz od strony:

Download "POLITECHNIKA ŚLĄSKA WYDZIAŁ INŻYNIERII MATERIAŁOWEJ I METALURGII. Edukacja Techniczno Informatyczna Studia dzienne. Praca dyplomowa inżynierska"

Transkrypt

1 POLITECHNIKA ŚLĄSKA WYDZIAŁ INŻYNIERII MATERIAŁOWEJ I METALURGII Edukacja Techniczno Informatyczna Studia dzienne Praca dyplomowa inżynierska Tomasz Babiarz PORÓWNANIE KOMPILATORÓW DLA ŚRODOWISKA JAVA COMPARISON OF JAVA COMPILERS Kierujący pracą: dr inż. Marcin Blachnik Katowice, marzec 2010r. 1

2 Spis treści 1. Wstęp Cel pracy Wersje Javy Tworzenie programu w Javie Wirtualna maszyny Javy Kompilatory Kompilacja w Javie Javac Jikes GCJ Część praktyczna Wyniki testów Wykresy Wnioski Podsumowanie Literatura Spis rysunków Spis tabel Spis wykresów

3 1. Wstęp Początki JAVY sięgają 1991, kiedy to James Gosling wraz z grupką inżynierów rozpoczął prace nad niewielkim językiem komputerowym, który znalazłby zastosowanie w niewielkich urządzeniach elektronicznych. Z powodu, iż urządzenia te nie posiadały za wiele pamięci, język musiał być mały a przy tym generować prosty kod maszynowy. Ponieważ producenci sprzętu elektronicznego montowali w swoich produktach rożne procesory, ważne było aby język nie był zależny od żadnej konkretnej architektury, a tym samym był przenośny. Projekt ten początkowo został nazwany Green [1]. Projektanci oparli swój język na C++ czerpiąc z niego to, co najlepsze wprowadzając jednocześnie dużo prostszą składnie. Gotowy język ochrzczono nazwą Oak (ang. dąb). Ta nazwa nie zakorzeniła się na długo gdyż, jak się okazało była już zajęta przez inny język programowania, więc została zmieniona na Java. Swój debiut na scenie internetowej Java miała pod koniec 1995 roku od razu podbijając serca użytkowników. Za zadanie postawiono jej aby stała się uniwersalnym łącznikiem miedzy użytkownikami a informacjami, bez zależności, czy informacja pochodzi z serwerów stron internetowych, baz danych czy innego miejsca. Jak się okazało Java doskonale spełnia pokładane w niej nadzieje, co sprawiło że uzyskała akceptacje wszystkich największych firm oprócz Microsoftu [2]. Java posiada wbudowany system ochrony i bezpieczeństwa, który zapewnia komfort użytkownikom i programistom, jak i również wbudowane biblioteki uproszczające łączność między bazami danych, programowanie sieciowe. Jedną z najważniejszy zmian jaka została wprowadzona w porównaniu do poprzedników, jest to, że kod źródłowy programu jest kompilowany do kodu pośredniego. Sprawia to, że skompilowany kod nie jest programem, który można od razu uruchomić lecz powstaje tzw. Beta-kod interpretowany przez zainstalowaną na dowolnej stacji roboczej maszynie wirtualnej. Takie rozwiązanie sprawia, że powstały kod jest niezależny od konfiguracji sprzętowych i systemowych [2]. 3

4 Rysunek 1. Wieloplatformowość Javy 1.1 Cel pracy Nie od dziś wiadomo, że Java jest jednym z najpopularniejszych języków programowania. Popularność Javy sprawiła, że jest dla niej dostępny obok oficjalnego kompilatora producenta Javy, firmy Sun, szereg innych rozwiązań. Spośród dostępnych kompilatorów dla języka Java, dwa z nich produkowane są przez jedne z największych firm udostępniających oprogramowanie: Sun Microsystems i IBM. Są to Javac i Jikes, które konkurują z tworzonym przez projekt GNU kompilatorem GCJ. Wszystkie wyżej wymienione programy są do pobrania bezpłatnie ze stron ich producentów. Celem pracy będzie przedstawienie i porównanie tych kompilatorów na podstawie pomiaru czasu wykonywania się 4

5 kodu maszynowego powstałego podczas kompilacji. Kod uruchamiany będzie na najpopularniejszej obecnie wśród maszyn wirtualnych, wirtualnej maszynie Javy. Dla porównania wyników, testy zostaną przeprowadzone pod dwoma systemami operacyjnymi zainstalowanymi na programie wirtualizującym stacje roboczą VirtualBox firmy Sun Microsystems. Wyżej wymienionymi systemami będą Microsoft Windows XP z Service Pack iem 2 oraz Ubuntu Programy, którymi zostaną przetestowane kompilatory, będą korzystać z najpopularniejszych funkcji wykorzystywanych przez programistów. W celu wyeliminowania ewentualnych błędów pomiarowych całość testów zostanie powtórzona dziesięciokrotnie, a wszystkie wyniki uśrednione. 1.2 Wersje Javy Do tej pory firma Sun Microsystems wydała już kilka wersji Javy, którymi są: 1.0x pierwsza uboga i niedopracowana wersja Javy 1.1x wprowadzenie: nowego modelu zdarzeń, Swing, JavaBeans 1.2x zmiana nazwy interfejsu programistycznego z JDK (Java Development Kit) na Java 2 SDK (Software Development Kit), integracja obecnych rozwiązań platforma Java 2 posiadająca trzy niezależne edycje: standardowa J2SE (Java 2 Standard Edition) biznesowa J2EE (Java 2 Enterprise Edition) mikro J2ME (Java 2 Micro Edition) Java 6 obecna wersja platformy Javy dostępna w trzech wersjach: Obecnie dostępne wersje to: JSE 6.0 (Java Standard Edition) - środowisko podstawowe do standardowych zastosowań komputerów osobistych i serverów 5

6 JEE 6.0 (Java 2 Enterprise Edition) środowisko do tworzenia zaawansowanych i rozbudowanych aplikacji biznesowych, stworzone na bazie JSE JME 3.0 (Java 2 Mobility Edition) środowisko do tworzenie aplikacji do urządzeń przenośnych o ograniczonych zasobach np. telefony komórkowe, palmtopy[3][4] 1.3 Tworzenie programu w Javie Do stworzenia najprostszego programu w Javie nie jest potrzebny żaden specjalnie dedykowany program. Wystarczy dowolny edytor tekstu np. notatnik. Dla wszystkich programów postępujemy według schematu: Stworzenie pliku źródłowego zawierającego klasę o takiej samej nazwie jak nazwa pliku Zapisanie kodu w pliku z rozszerzeniu *.java Kompilacja pliku z kodem źródłowym o rozszerzeniu *.java do pliku o rozszerzeniu *.class Uruchomienie w środowisku interpretatora Beta-kodu Pisanie programów w notatniku nie jest jednak komfortowe, gdyż istnieje duże prawdopodobieństwo popełnienia błędu, co uniemożliwi kompilacje i późniejsze uruchomienie programu. Dlatego najlepiej korzystać z jakiegoś środowiska programistycznego, które sprawdzi czy nie popełniliśmy blędów np. literówek, oraz w znaczący sposób ułatwi programowanie. Najpopularniejszymi środowiskami wśród programistów są Eclipse i NetBeans. Oba programy są darmowe i można je ściągnąć ze stron ich producentów: 6

7 2. Wirtualna maszyny Javy Wirtualna maszyna jest to system uruchomieniowy dla programów, którego charakterystyczną cechą jest niezależność od platformy, na której jest zainstalowany. Obecnie najpopularniejszą maszyną wirtualna jest JVM firmy Sun Microsystems. Istnieje także kilka innych wirtualnych maszyn, produkowanych przez tak znane i uznane firmy jak IBM czy Oracle. Maszyny wirtualne wyżej wymienionych firm nie znalazły jednak zbyt dużej popularności wśród zwykłych użytkowników. Firma SUN Microsystems dostarcza bezpłatnie oprogramowanie Java w dwóch wersjach Java SE Development Kit 6u18 oraz Java SE Runtime Environment 6u18. Środowisko RE zawierający podstawowy pakiet programów pozwalających na ich uruchomienie. Wirtualna maszyna Javy posiada wsparcie dla wszystkich wersji Windows a oraz dla różnych dystrybucji Linuxa i Solarisa. Java Software Development Kit jest zestawem narzędzi przeznaczonym dla programistów w jego skład wchodzą: narzędzia do budowania, kompilacji i uruchamiania programu, narzędzia do dokumentowania i archiwizacji programów, pakiety klas standardowych przykładowe aplety i aplikacje. Zainstalowany pakiet SDK zawiera min. katalogi: bin zawierający programy usługowe: javac kompilator, java - interpreter, appletviewer przeglądarka apletów, javadoc - generator dokumentacji, jdb debuger, jar narzędzie do tworzenia archiwów, 7

8 jre zawierający środowisko uruchomieniowe, maszynę wirtualną - Javy, bibliotekę klas, lib zawierający dodatkowe biblioteki klas, demo zawierający aplety i aplikacje demonstracyjne, src.zip kody źródłowe klas standardowych, docs zawierający znormalizowana dokumentacja pakietu w postaci stron HTML. [2] 8

9 3. Kompilatory Kompilator najprościej możemy opisać jako program, który czyta kod napisany w jednym języku (języku źródłowym) i tłumaczy go na program równoważny (język wynikowy). Bardzo ważnym elementem procesu translacji jest zgłaszanie i wyświetlanie użytkownikowi komunikatów o ewentualnych błędach w programie źródłowym. Rysunek 2. Ogólny schemat kompilatora Analizując ilość dostępnych kompilatorów początkowo możemy zostać przytłoczeni. Obecnie istnieją tysiące języków źródłowych, licząc od tradycyjnych języków programowania Java, Pascal, rodzina języków C, aż po wyspecjalizowane języki, stosowane do bardzo różnych zastosowań komputera. W takim samym stopniu zróżnicowane są języki wynikowe, którymi mogą być: inny język programowania albo kod maszynowy dowolnego urządzenia elektronicznego (od procesor mikrofalówki po procesor komputera). Zazwyczaj kompilatory są sklasyfikowane w oparciu o cel ich przeznaczenia jak i w zależności od ich konstrukcji. Kompilatory dzielą się na: jednoprzebiegowe wieloprzebiegowe uruchomieniowe (ang. debugging) typu załaduj i uruchom (ang. load-and-go) 9

10 Pomimo zróżnicowanych zadań kompilatorów, podstawowe ich funkcje pozostają takie same. Kompilatory działają w fazach, które następując kolejno po sobie przekształcają program z jednej postaci na inną. Poniżej znajduje się schemat pozwalający zobrazować to zagadnienie Rysunek 3. Schemat blokowy kompilatora 10

11 Pierwsze trzy części składają się na część analizującą kompilatora. W jej skład wchodzi : analizator leksykalny analizator składnikowy analizator semantyczny Pozostałe części kompilatora to: generator kodu pośredniego optymalizator kodu generator kodu Zarządzanie tablicą symboli i obłoga błędów współdziałają ze wszystkimi elementami i zazwyczaj również nazywane fazami. W celu ułatwienia rozrumienia zasady działania kompilatorów Javy, trzeba przynajmniej znać sposób działania niektórych z wyżej wymienionych elementów składowych uogólnionego kompilatora. Jak już wiemy praca kompilatora przebiega w fazach, a sam kompilator zbudowany jest z kilku części. Pierwsze fazy kompilatora wchodzą w skład analizy źródłowej programu. W wcześniej przedstawionym modelu kompilatora program źródłowy w pierwszej kolejności trafia do analizatora leksykalnego. Jego głównym zadaniem jest czytanie znaków z wejścia oraz produkcja symboli leksykalnych do analizy składniowej. 11

12 Rysunek 4. Wymiana danych miedzy analizatorem leksykalnym i składniowym Powyższy schemat obrazuje oddziaływanie między analizatorem leksykalnym a analizatorem składniowym. Współpraca między nimi polega na tym, że po otrzymaniu polecenia daj następny symbol od analizatora składniowego, analizator leksykalny czyta wszystkie znaki z wejścia, aż zidentyfikuje kolejny symbol leksykalny. Analizator leksykalny będąc częścią kompilatora czytającą tekst źródłowy również może wykonywać pewne zadania związane z interfejsem użytkownika. Jednym z nich może być omijanie z pliku wejściowego komentarzy i białych znaków czyli spacji, tabulacji i nowych wierszy. Kolejnym zadaniem jest dopasowywanie wyświetlanych komunikatów do określonego miejsca w kodzie źródłowym programu. Polega to na śledzeniu przez analizator leksykalny wczytanych wierszy z wejścia aby kompilator podczas wystąpienia ewentualnego błędu mógł razem z komunikatem o danym błędzie wyświetlić numer wiersza, w którym on występuje. Zdarza się, że analizatory leksykalne podzielone są na dwie fazy, pierwszą z nich jest skanowanie, a drugą analiza leksykalna. Skaner odpowiedzialny jest za wykonywanie prostych zadań, a analizator leksykalny zajmuje się tymi bardziej skompilowanymi. Kolejną istotnym elementem kompilatora, jest analizator składniowy, który otrzymuje ciąg znaków leksykalnych od analizatora leksykalnego, a następnie 12

13 sprawdza czy dany ciąg może zostać wygenerowany przez gramatykę dla języka źródłowego. Analizator składniowy ma również jeszcze jedno bardzo istotne zadanie, mianowicie ma zgłaszać występowanie błędów składniowych. Jest to bezpośrednio związane z tym, że nie realne jest aby kompilator przetwarzał tylko poprawne programy, gdyż programiści to też ludzie i zdarzają się im błędy. Gdyby jednak dało się ich całkowicie unikać, wtedy projekt i stworzenie kompilatora bardzo by się uprościły. Niestety tak nie jest i często zdarza się, że programiści piszą niepoprawne programy, więc dobry kompilator powinien pomóc programiście w zlokalizowaniu błędu i jego usunięciu. To spowodowało, że obsługa błędów w analizatorze składniowym ma postawione proste cele: zgłaszać obecność błędu, w jasny sposób w razie wykrycia błędu, szybo wracać do analizy składniowej w celu wykrycia kolejnych błędów nie spowalniać w sposób znaczący przetwarzania poprawnych programów. Jedną z ważniejszych funkcji kompilatora jest zapamiętywanie identyfikatorów, które są używane w programie źródłowym oraz zbieranie informacji o ich różnych atrybutach. Atrybuty mogą dostarczać informacji na temat ilości zajętej pamięci przez identyfikator, o jego typie, zasięgu (jego dostępność i widoczność w programie). Także w przypadku nazw atrybuty podają liczbę i typy argumentów, metody przekazywania każdego argumentu oraz typ wyniku o ile ta metoda zwraca wynik. Tablica symboli jest zbudowana ze zbioru rekordów z atrybutami dla wszystkich identyfikatorów. Struktura to za zadanie ma umożliwiać szybkie znalezienie rekordu dla każdego identyfikatora oraz szybkie zapisywanie i odczytywanie danych z rekordu. Identyfikator napotkany przez analizę leksykalną dodawany jest do tablicy symboli. Reszta faz wstawia do tablicy informacje o identyfikatorach, aby w kolejnych etapach kompilacji wykorzystać je do różnych celów takich jak; sprawdzenie podczas analizy semantycznej i generacji kodu czy identyfikatory używane są poprawnie oraz wygenerowania poprawnych operacji na nich działających. Dokładne informacje na temat przydzielonej pamięci identyfikatorom są niezbędne do działania generatora kodu [5]. 13

14 Ostatnim etapem pracy kompilatora Javy jest generowanie kodu pośredniego (inne kompilatory np. języka C posiadają jeszcze dodatkowo generatory kodu wynikowego). Efektem jego pracy jest stworzenie tzw. Beta kodu, które zostanie opisane w dalszej części pracy 3.1 Kompilacja w Javie Znając ogólne zasady działania kompilatorów możemy przyjrzeć się jak wygląda kompilacja programu napisanego w konkretnym języku, którym w naszym przypadku jest Java. Jak wiemy proces kompilacji jest niezbędny do uruchomienia programu napisanego w Javie. Polega on na zamianie kodu źródłowego programu na kod bajtowy, a następnie bezpośrednio przed jego wykonaniem na kod maszynowy, co dobrze obrazuje poniższy schemat Rysunek 5. Ogólny schemat kompilacji programu napisanego w Javie 14

15 Podczas kompilacji plików z kodem Javy (pliki *.java) tworzone są instrukcje kodu bajtowego (pliki *.class) które zostają wykonane przez interpreter kodu bajtowego. Jednak dobrze by było przyjrzeć się bliżej temu procesowi gdyż, co prawda cała kompilacja od strony praktycznej sprowadza się do wpisania polecenia w linii komend i jest przeprowadzana automatycznie przez kompilator, jednak obserwacja efektów jego działania należy już do użytkownika. Programista tworzący programy w Javie powinien wiedzieć jaka metodą powstaje kod maszynowy dla danej platformy, czyli innymi słowy jaka jest droga pomiędzy kodem źródłowym a kodem wykonywalnym. Musimy sobie jednak uświadomić, że użytkownik nie zawsze ma dostęp do kodu wykonywalnego na daną platformę, ponieważ taki kod może być generowany dopiero w trakcie uruchamiania programu. Aby wyjaśnić cały mechanizm generowania kodu maszynowego programu stworzonego w Javie dla danej platformy trzeba przedstawić kilka podstawowych zagadnień z nim związanych. Kod maszynowy jest ciągiem liczb interpretowanych przez komputer, a konkretnie jego procesor w celu wywołania pożądanego efektu. Używanie serii liczb w celu wykonania określonego zadania nie jest jednak zbyt efektywne, a dla samego użytkownika niekomfortowe. Dlatego też stworzony został prosty język, który posiada proste instrukcje wywoływane z odpowiednimi parametrami lub wartościami. Tak przygotowany kod tłumaczony jest przez komputer na kod maszynowy. Opisywany wyżej język nosi nazwę assembler, a w przypadku Javy kod źródłowy kompilowany jest do pseudo-assamblera nazwanego b-kodem. Instrukcje napisane w B-kodzie, tłumaczone są na odpowiadające im ciągi liczb (kod maszynowy) w trakcie uruchomienia programu (klasy). W praktyce oznacza to, że jedna linia kodu napisanego w assamblerze zwykle generuje jedną linie kodu maszynowego. Dla porównania assemblera i pseudo-assamblera, poniżej przedstawiony jest fragment kodu w assemblerze, który wygląda następująco: add eax, edx mov ecx, eax 15

16 Natomiast te same instrukcje, w pseudo-assamblerze wyglądają zupełnie inaczej [6]: 0 iload_1 1 iload_2 2 iadd 3 istore_3 W celu ułatwienia życia programistom stworzone zostały języki tzw. wysokiego rzędu jak np. C, C++, Pascal w których pojedyncza linia komend może być zamieniona na kilka linii kodu maszynowego dla danej platformy. Cały proces konwertowania kodu źródłowego języka wysokiego rzędu do kodu wykonywalnego nazwano kompilacją statyczną i w przypadku technologii Java sprowadza się do kompilacji kodu źródłowego do B-kodu. Proces kompilacji składa się z siedmiu podstawowych procesów wymienionych w poprzednim rozdziale. tłumaczenie kodu źródłowego generacja kodu maszynowego/b-kodu optymalizacja kodu maszynowego/b-kodu Pierwszym etapem jest tłumaczenie kodu źródłowego, które polega na wydobyciu z tekstu poszczególnych elementów języka np. if, ), class ; a w kolejnym etapie połączenie w wyrażenia języka. W momencie gdy zostaną napotkane elementy niezrozumiałe dla danego języka, które nie są zgodne z jego wzorcami, to kompilator przerywa pracę i zwraca użytkownikowi błąd, co zazwyczaj niesie za sobą konieczność skorygowania elementów powodujących konflikty. Jeżeli tłumaczenie całego kodu przebiegnie pomyślnie to następuje konwersja do B-kodu, który w kolejnym kroku zostaje zoptymalizowany. Celem procesu optymalizacji jest zmniejszenie rozmiarów kodu oraz poprawa szybkości jego działania. Wyrażenia języka są bardzo często kompilowane i tworzą biblioteki czyli gotowe zbiory kodów, które możemy wykorzystać podczas konstrukcji własnego programu. Podczas kompilacji programu korzystamy więc z gotowych wcześniej skompilowanych kodów. Zbiór bibliotek stanowi niezbędną część zasobów danego języka programowania, jednak mogą być też wytwarzane przez użytkowników środowiska tworzenia programów. Krótko podsumowując 16

17 kompilacja statyczna jest procesem konwertowania kodu źródłowego na kod pośredni. Kod pośredni (B-kod) podczas uruchomienia aplikacji jest konwertowany na kod maszynowy. Do tego celu służą różne techniki. Jedną z nich jest interpretowanie, które polega na cyklicznym pobieraniu instrukcji języka, tłumaczeniu ich na kod maszynowy, generacji i wykonywaniu. Przykładowymi interpreterami są powłoki (ang. shell) systemów operacyjnych przykładem, których są DOS, bash, csh. Największą wada interpretowanie jest jednak to, że nie można wykonać optymalizacji kodu maszynowego, gdyż nie jest on dostępny. Jeżeli chodzi o Javę interpretowanie kodu wygląda jednak trochę inaczej. Związane jest to z jedną z głównych cech, która była jednym z powodów jej stworzenia. Mowa oczywiście o przenośności kodu. Założenie, że kod może być uruchamiany na każdej platformie sprzętowej spowodowało konieczność stworzenia takich interpretatorów, które umożliwiałyby efektywną konwersję tego samego kodu źródłowego na kod wykonywujący się tak samo na rożnych platformach sprzętowych. Proces interpretacji zajmuje stosunkowo bardzo dużo czasu, dlatego konieczne były pewne modyfikacje przyśpieszające go, aby uruchamiany program był odpowiednio efektywny. Zabiegi te znacznie poprawiły wydajność programów napisanych w Javie. Proces ten przebiega dwuetapowo. Pierwszym etapem opisanym wyżej jest kompilacja kodu źródłowego na kod pośredniego, który nosi również nazwę kodu maszyny wirtualnej. Kod pośredni jest efektem translacji kodu źródłowego zgodnie z architekturą języka Java. W wyniku translacji powstaje zestaw bajtów, który przed uruchomieniem musi być przekonwertowany na kod maszynowy zgodny z architekturą platformy sprzętowej, na której jest uruchamiany. W języku używanym przez programistów zestaw bajtów jest również nazywany Beta-kodem lub B-kodem. Kod wynikowy konkretnej platformy powstaje w wyniku interpretowania Beta-kodu przez interpreter maszyny wirtualnej. Potrzeba jeszcze większego przyśpieszenia procesu kompilacji spowodowała, że zamiast interpretatora B-kodu opracowano różne kompilatory dynamiczne. Ich działanie oparte jest na kompilacji w locie B-kodu do kodu wykonywalnego dla danej maszyny. Otrzymany w ten sposób kod wykonywalny 17

18 umieszczany jest w pamięci komputera, tym samym oznacza to, że nie jest zapisywany w postaci pliku na dysku. Z tego wynika, że kod po skończeniu działania programu jest po prostu niedostępny. [2] Ta metoda kompilacji została nazwana kompilacją JIT Just-In-Time (kompilacja w locie). Poprawa wydajności w stosunku do interpreterów kodu polega na buforowaniu bloków kodu, a nie interpretowaniu każdej linii po kolei za każdym razem gdy program jest otwierany. Kod źródłowy skompilowany do Beta-kodu nie jest przypisany do konkretnego komputera co sprawia, że może on być przenoszony miedzy rożnymi architekturami. Taki kod może być interpretowany lub uruchamiany na maszynie wirtualnej. Mimo, iż kompilacja JIT ma za zadanie przyśpieszenie wykonywania programów zwykle powoduje nieznacznie opóźnienie w początkowym etapie realizacji kodu. Wpływa na to czas potrzebny do załadowania i skompilowania Beta-kodu. Kod wykonuje się tym lepiej im więcej razy zostanie wykonany.[7] Receptą na potrzebę rozgrzewania się wyeliminowano przez stworzenie kompilatora AOT (ang. Ahead-of-time), który przed uruchomieniem kodu jeszcze raz go przekompilowuje wprowadzając przy tym zmiany, które poprawiają wydajność kodu. W Javie oprócz błędów występują również wyjątki. Wyjątki są to określone sytuacje konfliktowe spowodowane przez niewłaściwe funkcjonowanie klas i metod. Przykładem wyjątków mogą być: dzielenie przez zero, brak pliku o podanej ścieżce, brak hosta o podanym adresie, czy też brak klasy. Wystąpienie wyjątku nie powoduje zazwyczaj przerwania pracy programu. Każdy wyjątek związany jest bezpośrednio z określoną klasą i jej metodami. Przykładowe wyjątki i ich klasy to: w pakiecie java.lang.*: ClassNotFoundExeption brak klasy, ArrayIndexOutOFBoundsExeption przekroczenie zakresu tablicy, ArithmeticExeption wyjątek operacji arytmetycznych np. dzielenie przez zero, w pakiecie java.io.*; 18

19 EOFExeption koniec pliku, FileNotFoundExeption brak pliku, InterruptedIOExeption przerwanie operacji we/wy. Przykładowe błedy: OutOfMemoryError bład braku pamięci, NonSuchMethodError bład braku danej metody w klasie, NonSuchFieldError bład braku danego pola w klasie [2]. 3.2 Javac Javac jest podstawowym narzędziem wchodzącym w skład JVM (Java Virtual Machine) służącym do kompilacji programów. Jego najnowsza wersja ma oznaczenie 1.6.0_17. Pierwszym krokiem do rozpoczęcia kompilacji programów jest instalacja pakietu Java SE Development Kit 6u18 dostępny do pobrania z Aby rozpocząć prace z kompilatorem Javac należy rozpocząć od dodania zmiennej środowiskowej PATH do katalogu bin zawierającego kompilator Javac i interpreter Java. 19

20 Rysunek 6. Dodawanie zmiennej środowiskowej Po tej czynności można bez problemu korzystać z kompilatora. Jego uruchomienie odbywa się z linii komend. Wprowadzona zmienna środowiskowa pozwala nam na nie podawanie całej ścieżki dostępu do kompilatora. Wystarczające jest przejście do katalogu z plikiem programu i wprowadzenie jedynie polecenia javac nazwa_pliku.java. Jeżeli program został prawidłowo skompilowany konsola powinna nie wyświetlić żadnego błędu a jedynie nową linie komend. Gotowy program uruchamiamy poleceniem java nazwa_pliku. Ważne aby nie dodawać rozszeżenia class, ponieważ wtedy program nie uruchomi się. 20

21 Rysunek 7. Poprawnie skompilowany program Javac zawiera duża ilość opcji i ustawień kompilacji są to min.: -g generuje wszystkie informacje debugowania -g:none generuje informacje bez błędów -g:{lines,vars,source generuje tylko niektóre informacje -nowarn nie wyświetla ostrzeżeń -verbose wyświetla informacje na temat pracy kompilatora -classpath <path> określa ścieżkę dodatkowych klas użytkownika -cp <path> j.w. -sourcepath <path> lokalizacja źródła plików wejściowych -extdirs <dirs> zmienia lokalizację zainstalowanych rozszerzeń -d <directory> określ, gdzie umieścić wygenerowane pliki class -s <directory> określ, gdzie umieścić wygenerowane pliki źródłowe -target <release> generowanie plików class dla konkretnych wersji VM -version informacje o wersji -help wyświetla standardowe opcje -X wyświetla niestandardowe opcje [8] 21

22 3.3 Jikes Jikes jest produktem IBM a jednak projekt ten nie jest od kilku lat rozwijany. Jego ewaluacja stanęła na wersji Jikes jest tylko kompilatorem, nie wchodzi w skład żadnej maszyny wirtualnej przez to jego rozmiary są niewielkie. Program można z łatwością pobrać z wybierając wersje odpowiadającą naszemu systemowi operacyjnemu. Kompilator jest dostępny w wersjach dla takich platform jak: MS Windows, platformy Linux owe oraz MAC OS. Aby rozpocząć prace z kompilatorem Jikes nie potrzebna jest nam jego instalacja, jednak kompilacja kodu źródłowego wymaga zainstalowanej JVM. Jest to konieczne aby wskazać kompilatorowi położenie podstawowych klas. Dlatego kompilator do uruchomienia procesu kompilacji potrzebuje wskazania lokalizacji pliku rt.jar znajdującego się katalogu lib pakietu JRE. Gotowe polecenie wpisane w konsole wygląda następująco: jikes bootclasspath sciazka_do_rt.jar plik_kompilowany.java. Podobnie jak w przypadku kompilatora Javac jeżeli plik zostal poprawnie skompilowany konsola nie wyświetla żadnych komunikatów i zapisuje plik z rozszerzeniem *.class, który bez problemu można uruchomić poleceniem java plik_kompilowany [9]. 3.4 GCJ Ostatni z przedstawionych kompilatorów jest najczęściej stosowany przez użytkowników platform UNIX owych. GCJ czyli kompilator projektu GNU dla języka Java jest (GNU Compiler for Java) jest częścią GCC (GNU Compiler Collection) w skład którego wchodzi kompilator jak, środowisko uruchomieniowe podstawowe biblioteki i narzędzia dla języka Java. Jedną z głównych cech tego kompilatora jest to, że ułatwia integrację z innymi językami obsługiwanymi przez pakiet GCC. 22

23 Instalacja GCJ polega na wpisaniu w konsolę systemową Ubuntu polecenia sudo apt-get install gcj. Gdy oprogramowanie zostanie pobrane i zainstalowane w naszym systemie, możemy rozpocząć kompilacje programów. Skompilowanie programu polega na przejściu do katalogu zawierającego przygotowany wcześniej program i wpisaniu polecenia gcj C nazwa_pliku.java. Podobnie jak w poprzednich przypadkach, jeżeli program został prawidłowo skompilowany to konsola nie wyświetla żadnych błędów. Trzeba jednak pamiętać że GCJ jest bardziej wrażliwy na błędy występujące w kodzie. Przykładem może być sytuacja w której wykonywane są pewne obliczenia ale nie jest zwracana żadna wartość. Wtedy co prawda kompilator skompiluje program jednak, wyświetlany błąd zasygnalizuje nam, o zaistniałym problemie [10]. 23

24 4. Część praktyczna Zgodnie z zdefiniowanym celem pracy, część praktyczna będzie polegać na porównaniu szybkości wykonywania skompilowanego wyżej opisanymi kompilatorami kodu. Proces ten zostanie zrealizowany przez trzy kompilatory: Javac, Jikes i GCJ. Wszystkie skompilowane pliki zostaną uruchomione na maszynie wirtualnej Javy (JVM). W skład zestawu testującego wchodzi laptop HP Pavilon dv5 o parametrach: Procesor: Intel Core 2 Duo P7350 2GHz Pamięć: 3GB Karta graficzna NVIDIA GeForce 9600M GT (512 MB) Dysk twardy: 300GB System operacyjny: Windows Vista Ultimate Wszystkie testy zostały przeprowadzone na wirtualnie zainstalowanych systemach, którymi były: Windows XP z Ubuntu 10.4 Do uruchomienia wirtualnych systemów został użyty darmowy program VirtualBox w wersji [11]. Dla lepszego porównania wyników systemy zainstalowane są na maszynach wirtualnych o takich samych ustawieniach, które przedstawiają się następująco: Pamięć podstawowa: 1GB Partycja systemowa: 8GB Pamięć video: 16MB Do testów zostało użytych 8 programów. Programy w istocie są bardzo proste i sprawdzają wydajność podstawowych klas. Każdy z kodów jest zbudowany według tego samego schematu, czyli pętli wykonywanej określoną ilość razy oraz metody, która mierzy czas wykonywania programu. Każdy program 24

25 został uruchomiony 10 razy, a wszystkie wyniki uśrednione. Poszczególne programy mierzyły: Program 1 wydajność typowych operacji liczbowych takich jak dodawanie, odejmowanie, mnożenie i dzielenie, kod programu poniżej: [12][13] public static double RunTest(int Wielkoscpetli) { long x = 10; double y = 0; double z = 0; for (int i = 0; i < Wielkoscpetli; i++) { x = x + 3; y = (double) x / 7; z = y * 5; x -= 3; return z; Program 2 wydajność operacji na stringach używając metody do porównania ciągu znaków, kod programu poniżej: [12][13] public static boolean RunTest(int Wielkoscpetli) { String val0_2 = "hm"; String val1_2 = "hm"; String val2_2 = "Hm"; String val3_2 = "kg"; String val4_2 = "hm1"; String val0_4 = "Hara"; String val1_4 = "Hara"; String val2_4 = "HaRa"; String val3_4 = "xfdw"; String val4_4 = "Harai"; String val0_8 = "Haralamb"; String val1_8 = "Haralamb"; String val2_8 = "haralamb"; String val3_8 = "AmbzJ3pQ"; String val4_8 = "Haralambxq"; String val0_16 = "Haralambos Marma"; String val1_16 = "Haralambos Marma"; String val2_16 = "haralambos marma"; 25

26 String val3_16 = "gtswq*skdn-2iosc"; String val4_16 = "Haralambos Marmanis"; boolean test = false; for (int i = 0; i < Wielkoscpetli; i++) { if (val0_2.equals(val1_2) val0_2.equals(val2_2) val0_2.equals(val3_2) val0_2.equals(val4_2)) { test =!test; if (val0_4.equals(val1_4) val0_4.equals(val2_4) val0_4.equals(val3_4) val0_4.equals(val4_4)) { test =!test; if (val0_8.equals(val1_8) val0_8.equals(val2_8) val0_8.equals(val3_8) val0_8.equals(val4_8)) { test =!test; if (val0_16.equals(val1_16) val0_16.equals(val2_16) val0_16.equals(val3_16) val0_16.equals(val4_16)) { test =!test; return test; Program 3 - konfiguracja programu jest taka sama jak programu 2, ale program używa metody equalsignorecase, która przy porównaniu ignoruje wielkość znaków. Poniżej fragment kodu, którym rożni się od poprzedniego programu: [12][13] if (val0_2.equalsignorecase(val1_2) val0_2.equalsignorecase(val2_2) val0_2.equalsignorecase(val3_2) val0_2.equalsignorecase(val4_2)) 26

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Język JAVA podstawy programowania

Język JAVA podstawy programowania Język JAVA podstawy programowania [43] Na ogół łatwiej daje się człowiek przekonać racjom, do których sam doszedł, niż tym, które nastręczyły się komuś innemu. Myśli Blaise Pascal Jacek Rumiński, 1999

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Wykład 1: Wprowadzenie do technologii Java

Wykład 1: Wprowadzenie do technologii Java Programowanie komputerów Wykład 1: Wprowadzenie do technologii Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Czym jest Java? Obiektowy język programowania ogólnego przeznaczenia Opracowany

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA Naszym mózgom. Za to, że zawsze są na swoim miejscu. W mniejszym lub większym stopniu WPROWADZENIE DO JĘZYKA JAVA podstawowe informacje: zarys historii, zasadnicze cechy i pojęcia Javy, wirtualna maszyna

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Wstęp do programowania w języku Java

Wstęp do programowania w języku Java Programowanie obiektowe Wstęp do programowania w języku Java Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Wstęp do programowania

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Podstawy języka Java. przygotował: pawel@kasprowski.pl

Podstawy języka Java. przygotował: pawel@kasprowski.pl Podstawy języka Java przygotował: pawel@kasprowski.pl Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK) Autorzy Javy Green Team Ojciec Javy: James Gosling Poszukiwanie zastosowania

Bardziej szczegółowo

Wstęp do programowania w języku Java

Wstęp do programowania w języku Java Programowanie obiektowe Wstęp do programowania w języku Java Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Wstęp do programowania

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

JAVA. Tomasz Grzywacz. t.grzywacz@iel.waw.pl

JAVA. Tomasz Grzywacz. t.grzywacz@iel.waw.pl JAVA Tomasz Grzywacz t.grzywacz@iel.waw.pl Literatura B. Eckel "Thinking in Java", Helion, 2001 Laurence Vanhelsuwe [i in.], Programujemy w Java, t.1-2, EXIT, Warszawa 1997 Kris Jamsa, Java, MIKOM, Warszawa

Bardziej szczegółowo

Wstęp do programowania w języku Java

Wstęp do programowania w języku Java Programowanie obiektowe Wstęp do programowania w języku Java Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Wstęp do programowania

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej Java Podstawy JUST JAVA 28.03.2007 Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej beretam@torus.uck.pk.edu.pl http://torus.uck.pk.edu.pl/~beretam Hello

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie w C. dr inż. Stanisław Wszelak Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html Program napisany w języku Java, w wyniku kompilacji da kod bajtowy, plik z rozszerzeniem.class. Nie jest to plik wykonywalny samodzielnie w systemie operacyjnym tak jak pliki.exe. Uruchomienie gotowego

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

Wprowadzenie do środowiska Qt Creator

Wprowadzenie do środowiska Qt Creator 1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux Kontakt: e-mail: kontakt@mforex.pl infolinia: 22 697 4774 www.mforex.pl 1 1 O platformie Platforma mforex Trader to część systemu

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8 Szanowni Państwo! Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8 Przekazujemy nową wersję systemu SidomaOnLine v8. W celu zalogowania się do systemu niezbędny jest nowy klucz dostępu

Bardziej szczegółowo

Metody i algorytmy pomiarów przedmiotów metodami optycznymi.

Metody i algorytmy pomiarów przedmiotów metodami optycznymi. Rozdział 4. Oprogramowanie. Niewątpliwie podstawą poprawnego działania całego układu jest poprawnie napisany program sterujący pracą urządzeń i analizujący wyniki. Oprogramowanie sterujące projektowanym

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

Sposoby zwiększania efektywności systemu Windows

Sposoby zwiększania efektywności systemu Windows Grzegorz Trześniewski kl 1Tia 26.05.08r. Sposoby zwiększania efektywności systemu Windows Prof. Artur Rudnicki Uruchamiianiie ii zamykaniie Należy monitorować oprogramowanie ładowane podczas uruchamiania

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. Przypomnienie schematów blokowych BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż

Bardziej szczegółowo

Ministerstwo Finansów Departament Informatyzacji Usług Publicznych

Ministerstwo Finansów Departament Informatyzacji Usług Publicznych Ministerstwo Finansów Instrukcja programu epit WALIDATOR Grudzień Historia modyfikacji Data Wersja Opis Autor 2003 1 Utworzenie dokumentu DI/NWK 2007 Aktualizacja RI/GST/JNM 2008 Aktualizacja RI/GST/JNM

Bardziej szczegółowo

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Języki i paradygmaty programowania - 1

Języki i paradygmaty programowania - 1 doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów

Bardziej szczegółowo

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki w oparciu o przeglądarkę Microsoft Internet Explorer System stworzony został w oparciu o aktualne narzędzia i programy

Bardziej szczegółowo

Technika mikroprocesorowa. Języki programowania mikrokontrolerów

Technika mikroprocesorowa. Języki programowania mikrokontrolerów Języki programowania mikrokontrolerów Przed rozpoczęciem pisania kodu źródłowego programu należy zdecydować się na wybór określonego języka programowania. Stosuje się dwa rodzaje języków programowania

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 3 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział

Bardziej szczegółowo

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4 Zaawansowane Systemy Bazy Danych - ZSBD ZSBD ćwiczenie 4 Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. ZSBD ćwiczenie 4 W ramach tych i dwóch kolejnych ćwiczeń zapoznacie się

Bardziej szczegółowo

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Środowiska i platformy programistyczne

Środowiska i platformy programistyczne Środowiska i platformy programistyczne 1 Rys historyczny lata 80-90: efektywność! Cel: zwiększyć efektywność programisty jedno narzędzie: integracja edytor kodu, funkcje programistyczne (kompilacja, łączenie,

Bardziej szczegółowo

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej 1. Pamięć wirtualna Jeśli na komputerze brakuje pamięci RAM wymaganej do uruchomienia programu lub wykonania operacji, system Windows korzysta z pamięci wirtualnej, aby zrekompensować ten brak. Aby sprawdzić,

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą

Bardziej szczegółowo