  |
Interprete o compilatore |
  |
Entrambi! |
Tradizionalmente i linguaggi di programmazione venivano suddivisi in
linguaggi interpretati e compilati. Si considerava linguaggi
interpretato un linguaggio, come il basic, che viene eseguito
direttamente così com'è. Mentre si considerava un linguaggio
compilato, come il pascal, un linguaggio che prima dell'esecuzione
dovesse venir tradotto in un programma del linguaggio della macchina
direttamente eseguibile. Java sfugge a questa classificazione. In
realtà Java è, strettamente parlando, un linguaggio interpretato:
infatti l'esecuzione dei programmi avviene grazie a un interprete, la
JVM. Tuttavia, a differenza della maggioranza degli altri interpreti,
Java prima dell'esecuzione richiede una fase di compilazione.
  |
Prima compilare |
  |
Formato intermedio bytecode |
Per cui quando andiamo a eseguire il nostro programma, dobbiamo
invocare un comando, javac, che elaborerà il testo del nostro
programma in Java, e produrrà un formato intermedio eseguibile dalla
JVM.
  |
Poi interpretare |
  |
RunTime per molte piattaforma |
A questo punto che entra in gioco la JVM, che prende in pasto il
bytecode, e lo esegue.
|