Uvod u programiranje

Maja Čić


The Java Virtual Machine - JVM

Projektanti Jave su se odlučili na korištenje kombinacije kompilacije i interpretiranja. Programi pisani u Javi se prevode u strojni jezik, ali u strojni jezik računala koje zapravo ne postoji. Ovo takozvano prividno (virtual) računalo se zove "Java Virtual Machine".

Strojni jezik za Java Virtual Machine se zove Java bytecode. Nema razloga zbog kojega Java bajt kod ne bi mogao biti korišten kao strojni jezik i nekog stvarnog računala, osim ovog prividnog. Zapravo, Sun Mycrosystems, začetnik Jave, razvio je CPU-ove koji izvršavaju Java bajt kod kao svoj strojni jezik.

Ipak, jedna od glavnih prednosti Jave je da zapravo može biti korištena na bilo kojem računalu. Sve što je na tom računalu potrebno je interpreter za Java bajt kod. Takav interpreter oponaša Java virtual machine na isti način kao što prividno računalo oponaša osobno računalo.

Naravno, Java interpreter je potreban za svaku vrstu računala, ali nakon što računalo dobije Java bajt kod interpreter, može izvršavati bilo koji Java bajt kod program. A isti taj Java bajt kod program može biti izvršen na bilo kojem računalu koje ima takav interpreter. Ovo je jedna od glavnih osobina Jave: isti kompilirani program se može izvršavati na više različitih vrsta računala.


Postavlja se pitanje zašto uopće koristiti prijelazni Java bajt kod? Zašto se ne bi isporučivao izvorni Java program pa da ga svako kompilira za sebe u strojni jezik računala na kojem ga želi koristiti? Prvi od mnogo razloga je da kompiler mora razumijeti Javu, složeni jezik više razine. Kompiler, sam po sebi, vrlo je složen program, dok je, za razliku od njega, Java interpreter prilično mali, jednostavan program. Zbog toga je jednostavnije napisati interpreter za novu vrstu računala, a jednom kad je urađeno, to računalo može pokretati bilo koji kompilirani Java program. Sa druge strane, bilo bi mnogo složenije napisati Java kompiler za isto računalo.

Osim toga, mnogi Java programi su namijenjeni dohvaćanju preko mreže. Ovo vodi do očitih sigurnosnih pitanja: korisnik ne želi spustiti i pokrenuti program koji bi mogao nanijeti štetu njegovom računalu ili podacima. Java interpreter služi kao međuspremnik između korisnika i spuštenog programa. Korisnik zapravo pokreće interpreter koji neizravno izvršava dohvaćeni program. Interpreter može zaštititi korisnika i računalo od moguće opasnih radnji tog programa.


[ prethodna stranica | Početak | sljedeća stranica ]