JP SS 5 podstawy Java (2)

background image

1

Języki Programowania

Podstawy Java. Maszyny wirtualne.

2

Kompilacja

Kompilator

tłumaczy program zapisany w języku

wysokiego poziomu na język maszynowy

my_prog.c

my_prog.exe

program wykonywalny

background image

2

3

Kompilacja i platformy

Każda

platforma

(procesor + system operacyjny) ma własne unikatowe

wymagania odnośnie postaci kodu programu wykonalnego

Dla n języków i m platform potrzebne jest n

m kompilatorów

PC + UNIX

PC + Windows

PC + MacOS

4

Maszyna wirtualna (VM)

Maszyna wirtualna (VM

virtual machine

) jest hipotetycznym

(wirtualnym) komputerem

VM można uruchomić na dowolnym rzeczywistym komputerze jako
symulator (emulator)

Język maszyny wirtualnej jest językiem pośredniczącym między
oprogramowaniem a rzeczywistym komputerem. Zapis programu w
tym języku nosi nazwę

bytecode

Dla dowolnego języka wystarczy tylko jeden kompilator tego języka
na język VM

background image

3

5

Koncepcja VM

Niezależnie od liczby platform, dla n języków potrzeba n
kompilatorów

Maszyna wirtualna

– VM

PC + UNIX

PC + Windows

PC + MacOS

6

Wady koncepcji VM

Utrata efektywności

Stosując wspólną maszynę wirtualną VM dla różnych platform sprzętowych nie

można wykorzystać w pełni jej unikatowych cech przyspieszających wykonanie

niektórych operacji

akceleratory graficzne

operacje DSP ...

 Sprowadzenie zapisu programu do zunifikowanego bytecode prowadzi do utraty

efektywności języków w zakresie pewnych konstrukcji programistycznych

rekursja itp..

 Idealna maszyna wirtualna w praktyce nie istnieje

W praktyce decydując się na określoną VM dokonuje się kompromisu, godząc

się na utratę efektywności

Stąd szybkość programów interpretowanych przez VM jest zwykle mniejsza od

szybkości programów kompilowanych bezpośrednio na daną platformę

programy napisane w języku Java są wolniejsze od programów napisanych w języku
C/C++

background image

4

7

JVM

– wirtualna maszyna Java

Java

Maszyna wirtualna Java

JVM

PC + UNIX

PC + Windows

PC + MacOS

Maszyna wirtualna Java (

Java Runtime Engine

) jest dostępna dla niemal

wszystkich platform

JVM dla Windows to

java.exe

8

Maszyny wirtualne

 Maszyny wirtualne

dla jednego języka

 wielu platform
były znane już wcześniej, ale nie zdobyły większej popularności

Najbardziej dojrzałe rozwiązania wcześniejszych VM to

 Pascal:

p-

Machine (połowa lat 80-tych XX w.)

 Smalltalk: Smalltalk Bytecode Interpreter
 Prolog:

WAM

 Smalltalk 80

może być uważany za protoplastę języka Java. Rynek

nie był w roku 1980 przygotowany na taką ideę. Smalltalk
wyprzedził swój czas o ponad 20 lat

background image

5

9

Wielojęzyczne JVM

Współczesne implementacje JVM są zdolne do interpretacji

bytecode

generowanego przez różne języki

10

Kompilacja programu Java

Program źródłowy z rozszerzeniem

.java

jest kompilowany przez

kompilator

javac

na plik o tej samej nazwie, ale z rozszerzeniem

.class

Plik ten zawiera

bytecode

dla JVM

Source code

Hello.java

Hello.class

Hello.java

Hello.class

background image

6

11

Wykonanie programu Java

Bytecode

jest wykonywany przez JVM

Bytecode może również pochodzić z innych kompilatorów, np.. JPython,
JBasic lub Smalltalk/JVM

Hello

Hello.class

Hello.class

12

JDK

– główne elementy

Java Virtual Machine

java.exe

Narzędzia dokumentacji

javadoc.exe

Kompilator Java

javac.exe

background image

7

13

Środowisko JDK / DOS

Utworzyć program źródłowy

hello.java

W linii poleceń DOS wywołać
kompilator

javac

i skompilować

program

hello.java

Powstanie bytecode o nazwie

hello.class

Uruchomić program w JVM

public class hello{
public static void
main(String[] args)
{ System.out.println
("Hello World"); }
}


C:>javac hello.java


C:>java hello
Hello World

14

Środowisko JDK / Windows

Utworzyć program źródłowy

hello.java

Wywołać konsolę

cmd

Wywołać kompilator
>

javac hello.java

Powstanie bytecode o nazwie

hello.class

Uruchomić program w JVM
>

java hello

Na konsoli

pojawi się
tekst

Hello World

background image

8

15

Środowisko JDK / Windows

Metoda pisania, kompilowania i uruchamiania programów podana na
poprzednim slajdzie działa, ale jest anachroniczna

Dziś nie posługujemy się już linią poleceń, bo jest to niewygodne

Stosuje się specjalnie zaprojektowane graficzne środowiska uruchomieniowe

Interaktywne, graficzne środowiska uruchomieniowe dla języka Java

 JBuilder (Borland)
 NetBeans (Sun Microsystems)

Swing

– do budowy GUI

 Eclipse

Zaletą (ale też i wadą) wymienionych narzędzi jest bogactwo opcji, funkcji

Nauka jest długa i żmudna

 Dokumentacja jest bardzo obszerna

Dlatego opracowano uproszczone środowiska uruchomieniowe, przeznaczone
głównie do celów dydaktycznych

 BlueJ (University of Kent, Deakin University)
 jGRASP


Wyszukiwarka

Podobne podstrony:
JP SS 5 podstawy Java
JP SS 5 podstawy Java
JP SS 4 start Java
JP SS 4 wprowadzenie Java
JP SS 1 podstawy JP
JP SS 4 start Java
JP SS 1 podstawy JP
JP SS 4 start Java
JP SS 2 algorytmy i podstawy programowania
JP SS 10 Interfejs graficzny
JP SS 7 Klasy i obiekty
JP SS 6 BlueJ
JP SS 6 Klasy i obiekty
JP SS 7 Typy i operacje
JP SS 8 Instrukcje, pętle

więcej podobnych podstron