Java Virtual Machine
Home Su

                                                                                                                                                

Come linguaggi per Internet Java nasce con la prioritaria esigenza di essere indipendente dalla macchina fisica connessa alla  rete (Platform-independence).

Nei linguaggi tradizionali il programma è preventivamente tradotto (è il lavoro del compilatore) nel linguaggio macchina (codice binario) specifico del sistema in uso per poi essere eseguito molto velocemente. Questo comporta compilatori specifici per ogni piattaforma e l'obbligo per il distributore del software di usare quello specifico per ogni utente.
A dire il vero, è possibile anche un'altra soluzione. Il programmatore distribuisce il  programma sorgente demandando alla macchia dell'utente la traduzione in codice binario. Presso l'utente deve essere quindi presente, senza che siano richiesti particolari interventi e competenze, un dispositivo in grado di far comprendere ( interprete ) allo specifico hardware le varie istruzioni. Il prezzo da pagare è una grande lentezza di esecuzione.

I progettisti di Java hanno superato la questione usando un mix dei metodi. Hanno messo a punto un interprete, specifico per ogni piattaforma, veloce e compatto (tanto da poter essere addirittura realizzato con un chip hardware) e un compilatore, lo stesso per tutte le macchine, che produce, partendo dal sorgente ( *.java) il codice interpretabile noto come  "Java bytecodes" (*.class).

La figura seguente riassume il discorso fatto

 

 

 

Nella figura che segue è invece considerata la situazione complessiva