Java, ProgrammingJavaLecture1

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

1

Programowanie w Java 1

Marek Chmielowski

MChmielo@MChDelaware.com

Koncepcje tworzenia programów

Virtualna Maszyna

Java a internet

Bezpieczeństwo w sieci

Java w przeglądarkach

Program wykładów

Dla Specjalizacji Systemy Informacyjne w

Gospodarce

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

2

Koncepcje tworzenia
programów

Programowanie interakcyjne

Polecenia DOSu z linii komend

Klasyczny Basic z linii komend

Interpretacja instrukcji

Polecenia DOSu z pliku n.p. Autoexec.bat

Klasyczny Basic z programem zapisanym w pliku

Kompilacja

Kompilator C

Delphi

Dołączenie bibliotek

Linker MS

Delphi (automatycznie)

Przenoszalność

Kodu zródłowego (n.p. Delphi 6 i Kylix)

Plików wykonywalnych

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

3

Programowanie interakcyjne

Wykonywane przez interpretator (interpreter) poleceń

N.p. Command.com w DOS-ie

Kod źródłowy wpisywany na bieżąco (raczej krótki i trywialny)

Polecenia wpisuje się na tej samej maszynie która je „natychmiast” wykonuje

(technicznie polecenia mogą być wpisywane w oknie otwartym na innym komputerze)

Różne interpretatory mają różną składnie

W DOS-ie Command.com -> dir

W Linux-ie Bash -> ls

Takie same interpretator mogą występować na w różnych systemach i działać na
różnych procesorach

Cshell we wszystkich unix-ach

interpretatory działają tak samo, są to jednak inne programy ale mające taką samą
funkcjonalność (analogią mogą być zegarki elektroniczne i mechaniczne pokazujące czas)

Przenaszalność

„Przenaszalna” jest wiedza użytkownika pomiędzy tak samo nazwanymi interpretatorami
interakcyjnymi

Różne interpretatory (nawet na tym samym systemie) mają różną składnie (ale bardzo
podobną funkcjonalność ogólną - analogią mogą być zegarki z wskaźnikiem cyfrowym i
wskazówkowym)

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

4

Interpretatory

Wykonywane przez interpretator poleceń z pliku

N.p. Command.com w DOS-ie przetwarzający skrypt (bat)

Klasyczny Basic z programem zapisanym w pliku (bas)

Zwykle istnieje możliwość przełączania się z trybu interakcyjnego na przetwarzanie skryptu

Relatywnie wolne działanie związane z ciągłym przełączaniem się pomiędzy pobieraniem

instrukcji a jej wykonywaniem

Pobranie jednej linii instrukcji

Przetworzenie na instrukcje maszynowe (coś w rodzaju mikro-kompilacji)

Dołączenie wywołań bibliotek systemowych (mikro-likowanie)

Wykonanie powstałego kodu maszynowego

Powtórzenie cyklu dla każdej linii

Plik z poleceniami znajduje się na tej samej maszynie która je „kolejno” wykonuje

Interpretatory różnych języków mają różną składnie

Lisp

Basic

Interpretatory takich samych języków mogą występować w różnych systemach i

działać na różnych procesorach

Basic – prawie wszędzie

Są to jednak inne programy i mają zwykle trochę różne możliwości

Przenaszalność

Prosty kod źródłowy może być przenaszalny (oczywiście tylko w ramach tego samego języka)

Programy graficzne lub sieciowe wymagają zwykle wykonania pewnych zmian przy przenoszeniu na inny system

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

5

Kompilatory

Przetwarzanie poleceń z pliku na język procesora i zapisywanie kodu maszynowego w
innym pliku

N.p. Kompilator C, Delphi

Proces przetwarzania instrukcji jest odseparowany od procesu wykonywania

Relatywnie szybkie działanie związane z jednorazowym przetworzeniem wszystkich instrukcji w
pliku

Wyprodukowany kod maszynowy wymaga dołączenie odwołań do bibliotek systemowych lub
innych uprzednio skompilowanych modułów (proces zwany likowaniem)

Niektóre kompilatory są zintegrowane z linkerem (n.p. Delphi) i wykonują operacje kompilacji i
linkowania automatycznie

Zwykle kompilator przetwarza jeden język programowania ale są kompilatory
wielojęzykowe

Delphi przetwarza składnie Pascala i asemblera

Gcc na Linux-ie przetwarza C, C++, fortran, Ada, ...

Kompilatory tego samego języka programowania mogą występować na w różnych
systemach i działać na różnych procesorach

C – prawie wszędzie

Są to jednak inne programy i mają zwykle trochę różne możliwości

Przenaszalność

Prosty kod źródłowy może być przenaszalny (oczywiście tylko w ramach tego samego języka)

Programy graficzne lub sieciowe wymagają zwykle wykonania pewnych zmian przy przenoszeniu na inny system

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

6

Dołączanie bibliotek

Większość kompilatorów produkuje kod maszynowy który wymaga
dołączenie odwołań do bibliotek systemowych lub innych uprzednio
skompilowanych modułów (proces zwany likowaniem) w celu
wyprodukowania pliku wykonywalnego (n.p. exe)

Linkować można moduły napisane w różnych językach i skompilowane
różnymi kompilatorami n.p. Do programu w Delphi można dołączyć
biblioteki pisane w C (i oczywiście skompilowane kompilatorem C)

Przenaszalność

Linkowane moduły muszą być zgodne ze specyfikacją linkera – jest to jedna
z przyczyn dla której nie można linkować modłów skompilowanych dla
różnych systemów mimo że pracujących na tym samym procesorze

Inną, i zasadniczą, przyczyną są moduły systemowe które muszą być
dołączone lub wołane przez program

Program odwołuje się podczas wykonywania do bibliotek systemowych dołączanych
automatycznie przez system (dynamicznie ładowanych bibliotek DLL), są one oczywiście
różne w różnych systemach

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

7

Koncepcja
nieprzenoszalnego
oprogramowania

Klasyczne kompilatory

Kompilacja i linkowanie wykonywane jest na maszynie
programisty – użytkownik dostaje plik z kodem maszynowym

Brak uniwersalności kompilatora

Produkuje kod maszynowy dla jednego typu procesora

Program wynikowy wymaga dołączenia bibliotek z jednego
(określonego) systemu

Plik wykonywalny jest przenaszalny tylko pomiędzy maszynami
z takim samym procesorem i systemem operacyjnym

Kod źródłowy zwykle wymaga modyfikacji przy zmianie systemu,
a rekompilacji przy zmianie procesora

Rezultatem jest duży nakład pracy dla wyprodukowania
osobnej wersji programu dla każdej kombinacji systemu i
procesora

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

8

Koncepcja Virtualnej
Maszyny

Dla każdej kombinacji procesora i systemu

operacyjnego producent wykonuje specjalny program

i biblioteki implementujące idealny komputer według

jednolitego standardu (Virtualna Maszyna)

Emulator Virtualnej Maszyny (VM) jest instalowany na

maszynach użytkowników

Kompilator programisty wytwarza plik z kodem dla

VM (bytecody)

Jednolity standard zapewnia, że taki program może

być wykonany przez każdą Virtualną Maszynę

niezależnie na jakim systemie czy procesorze została

zaimplementowana

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

9

Znaczenie koncepcji VM
dla internetu

W internecie działają komputery różnych
producentów, z różnymi procesorami i systemami
operacyjnymi

Jednolity standard danych HTML umożliwia wszystkim
różnorodnym komputerom pobieranie i prezentowanie tych
samych danych pobieranych z sieci

Jednolity standard VM umożliwia pobieranie i wykonywanie
tych samych programów przez różnorodne komputery

Ta kompatybilność z internetem jest najważniejszą
przyczyną sukcesu koncepcji VM i przyczyną dla
której warto nauczyć się języka Java

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

10

Java

Java powstała w 1990 r. (pod nazwa

oak) w Sun Microsystems jako język do

programowania kontrolerów urządzeń

elektronicznych (n.p. pralki)

Jako pozostałość kontrolerów istnieją

procesory Javy które implementują w

„hardwarze” standard VM

W 1995 zdano sobie sprawę ze

znaczenia koncepcji VM dla internetu i

zapoczątkowano gwałtowny rozwój Javy

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

11

Problem bezpieczeństwa w
sieci

Ładujemy (także automatycznie) programy z sieci

Nie wiemy kto te programy napisał i co moją one robić

Olbrzymie zagrożenie dla naszego komputera i naszych

danych

Java VM pozwala ograniczyć możliwości działania

programów ładowanych z sieci (głównie apletów)

n.p. Zabraniająć operacji I/O

Inne rozwiązania

„konkurencją” dla Javy miały być komponenty ActiveX

Microsoftu i rozszerzenia standardu HTML w IE

Nie zapewniały one bezpieczeństwa i działały tylko w

produktach Microsoftu – obecnie prawie znikneły z sieci

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

12

Java VM w przeglądarkach

Przeglądarki WWW implementują VM

Umożliwia to automatyczne pobieranie przez
internet specjalnych graficznych programów
java (apletów) i bezpieczne ich wykonywanie

Przeglądarka może sama działać jako
interpreter (wykonywać bez uprzedniej
kompilacji) specjalnego podzbioru instrukcji i
procedur języka Java (Java Script) zapisanych
w kodzie źródłowym w dokumentach HTML

background image

15/02/02

Programowanie Java 1 Copyri
ght Marek A. Chmielowski

13

Program wykładów

Ilustracja koncepcji VM przypomocy JDK firmy SUN, Java VM i

kompilacji z linii komend

Prosty program tekstowy napisany w notepadzie

Kompilacja z linii poleceń

Wykonanie z linii poleceń na pod różnymi systemami

Podstawy składni języka Java

Analogie i różnice z Pascalem

Powtórzenie podstaw programowania obiektowego

Powtórzenie koncepcji przeciążenia metod i konstruktorów

Obsługa zintegrowanego kompilatora (IDE) JBuilder Borlanda

Pisanie kodu

Używanie elementów graficznych

Kompilacja i debugowanie

Pisanie prostych

programów

apletów


Document Outline


Wyszukiwarka

Podobne podstrony:
Java Programowanie Sieciowe Podstawy Javy id 226331
Java, ProgrammingJavaLecture2
Java, Programowanie W Jezyku Java
Java, ProgrammingJavaLecture4
Java Programowanie, biblioteki open source i pomysly na nowe projekty
java programming unleashed [ EN ] Java2
Java, ProgrammingJavaLecture5
Zeszyt Java, Programowanie obiektowe i strukturalne, Java
Java i Programowanie w Sieci Internet
Generics in the Java Programming Language
Sun Java Training SL 275 Java Programming Language Overheads (Sun Microsystems, 2000)
Java Programowanie, biblioteki open source i pomysly na nowe projekty
Java programy
143030393X {72191ACF} Fast Track to Sun Certified Java Programmer (SCJP) 5 0 Upgrade Exam [Tong 2006
Java Programowanie biblioteki open source i pomysly na nowe projekty
Java Programmer 2 exam objectives

więcej podobnych podstron