Macchina virtuale Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Makecat-bot (discussione | contributi)
Sumail (discussione | contributi)
aggiunto Jazelle e altre informazioni
Riga 6:
Codice Java : compilazione : bytecode : VM -> esecuzione reale del programma
 
Il bytecode è generalmente prodotto dalla compilazione di [[file sorgente|sorgenti]] scritti in linguaggio [[Java (linguaggio)|Java]], anche se è possibile produrre bytecode partendo da altri linguaggi; infatticome [[Scala]], già esistono delle implementazioni - parziali[[Clojure]] o complete - di compilatori che funzionino in tal senso[[Groovy]].
 
La JVM è definita da una [[specifica]], mantenuta da [[Sun Microsystems]]. Qualsiasi sistema che si comporti in modo coerente con tale specifica vaviene considerato come una particolare [[implementare|implementazione]] della JVM. Esistono implementazioni [[software]] per praticamente tutti i [[sistema operativo|sistemi operativi]] moderni, sia gratuite che commerciali. Inoltre, esistono implementazioni speciali per particolari ambienti [[hardware]]/[[software]], (per esempiocome [[telefono cellulare|telefoni cellulari]] e [[palmare|palmari]]), e persino implementazioni hardware come [[Architettura_ARM#Jazelle|Jazelle]].
 
La disponibilità di implementazioni della macchina virtuale Java per diversi ambienti operativi è la chiave della [[portabilità]] di Java, proclamata nello [[slogan]] ''write once, run everywhere'' ("scrivi una volta, esegui dappertutto"). La macchina virtuale realizza infatti un ambiente di esecuzione omogeneo, che nasconde al software Java (e quindi al programmatore) qualsiasi specificità del [[sistema operativo]] sottostante: