Interprete (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Voci correlate: Bot: Aggiungo controllo di autorità |
m Orfanizzo Java (linguaggio) |
||
Riga 22:
Esistono invece numerosi approcci ''ibridi'' fra linguaggi completamente interpretati e completamente compilati. Alcune versioni di [[Lisp]] consentono entrambi gli approcci, e consentono addirittura l'esecuzione di programmi parzialmente interpretati e parzialmente compilati, cosicché, per esempio, un nuovo [[subroutine|sottoprogramma]] possa essere provato in forma interpretata e, una volta terminato il [[debugging]], essere compilato per migliorarne le prestazioni.
Molti interpreti non eseguono direttamente il codice sorgente, ma lo convertono preventivamente in una forma interna più compatta, per esempio in un [[albero sintattico astratto]]. Ancora diverso è l'approccio di [[Emacs Lisp]] e [[Java (linguaggio di programmazione)|Java]], in cui viene impiegato un compilatore che trasforma il [[codice sorgente]] in un formato intermedio detto (per entrambi i linguaggi !) [[bytecode]], abbastanza vicino al [[linguaggio macchina]] (e quindi con un costo di interpretazione moderato), ma eseguito da un interprete e non direttamente dal processore (e quindi [[portabilità|portabile]]).
Una tecnica che ha destato notevole interesse negli ultimi anni (ed è applicata dalla maggior parte delle attuali implementazioni di [[Java (linguaggio di programmazione)|Java]] e dai linguaggi della famiglia [[Microsoft .Net|DOTNET]] di Microsoft) prende il nome di [[Compilatore just-in-time|compilazione "just in time"]] o JIT. Questa tecnica può essere considerata come una [[ottimizzazione (informatica)|ottimizzazione]] dell'interpretazione, in cui l'interprete compila durante l'esecuzione i frammenti di codice che vengono eseguiti con maggiore frequenza, per ridurre il costo delle loro successive esecuzioni.
==Voci correlate==
|