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 SP@ 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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

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

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

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

Translacja wprowadzenie

Translacja wprowadzenie Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986

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

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 w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r. Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

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

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

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

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

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

JAVA?? to proste!! Autor: wojtekb111111

JAVA?? to proste!! Autor: wojtekb111111 1 JAVA?? to proste!! 2 Niniejszy tutorial przedstawia krótkie wprowadzenie do programowania w języku JAVA. Jakie narzędzia na początku potrzebujemy do rozpoczęcia programowania w tym języku? JDK (java

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

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

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

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

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

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

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

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

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

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

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

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

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

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

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

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

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. 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

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

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

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

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików

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

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa Narzędzie pomocnicze przedmiotu Podstawy Informatyki - złożoność obliczeniowa Piotr Jeruszka 1 25 listopada 2013 1 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska pjeruszka@icis.pcz.pl

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. 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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

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

Informatyka I. dr inż. Andrzej Czerepicki.

Informatyka I. dr inż. Andrzej Czerepicki. Informatyka I dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Politechnika Warszawska Wydział Transportu 2018 Sprawy organizacyjne Harmonogram zajęć Regulamin

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

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

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

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

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

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

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu

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

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

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)

Bardziej szczegółowo

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

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

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

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

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

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

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

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

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

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta: QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,

Bardziej szczegółowo

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Tworzenie aplikacji Web Alicja Zwiewka. Page 1 Tworzenie aplikacji Web Alicja Zwiewka Page 1 Co to są web-aplikacje? Aplikacja internetowa (ang. web application) program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

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

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

Przykładowe sprawozdanie. Jan Pustelnik

Przykładowe sprawozdanie. Jan Pustelnik Przykładowe sprawozdanie Jan Pustelnik 30 marca 2007 Rozdział 1 Sformułowanie problemu Tematem pracy jest porównanie wydajności trzech tradycyjnych metod sortowania: InsertionSort, SelectionSort i BubbleSort.

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS

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

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

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