Compilatore AOT

Un compilatore ahead-of-time (AOT) è un compilatore che implementa la compilazione ahead-of-time. Si riferisce all'atto di compilazione di un programma da un linguaggio ad alto livello (come il C o il C++) o da un linguaggio intermedio (come Java bytecode o .NET Common Intermediate Language (CIL) in un binario dipendente dal sistema.

Molti linguaggi che possono essere compilati in un linguaggio intermedio prendono vantaggio della ricompilazione dinamica (JIT). In breve, il codice intermedio viene compilato nel codice binario durante l'esecuzione del programma. Questo migliora le prestazioni rispetto al codice interpretato ma le peggiora rispetto a un codice compilato fin dall'inizio in codice nativo. La compilazione JIT può rallentare le prestazioni dell'esecuzione dato che il programma prima di essere eseguito deve venir compilato dal sistema. La compilazione ahead-of-time sposta la fase compilazione prima dell'esecuzione, tipicamente durante l'installazione del programma. Quindi durante l'installazione del programma il codice in linguaggio intermedio viene compilato in codice binario nativo della piattaforma. Questo permette di eseguire il programma usando codice binario nativo evitando la fase di compilazione durante l'esecuzione del programma e in generale migliorando le prestazioni e la reattività dei programmi.

Voci correlate

  • IL2CPU (CIL)

Collegamenti esterni

.NET:

  • Speed: NGen Revs Up Your Performance with Powerful New Features -- MSDN Magazine, Aprile 2005, su msdn.microsoft.com. URL consultato il 28 maggio 2009 (archiviato dall'url originale il 18 febbraio 2008).
  • Mono AOT, su mono-project.com.

Java:

  • Excelsior JET -- Java SE 6 Implementation with AOT compiler, su excelsior-usa.com. URL consultato il 28 maggio 2009 (archiviato dall'url originale il 16 dicembre 2010).
  • GNU Compiler for Java, su gcc.gnu.org. URL consultato il 18 aprile 2008 (archiviato dall'url originale il 18 aprile 2008).
  • Aonix PERC Ultra, su aonix.com. URL consultato il 28 maggio 2009 (archiviato dall'url originale il 3 giugno 2009).
  • Real-time Java, Part 2: Comparing compilation techniques -- IBM developerWorks, Aprile 2007, su ibm.com.
  • Improving Swing Performance: JIT vs AOT Compilation -- LinuxWorld Magazine, Novembre 2004, su linux.sys-con.com. URL consultato il 28 maggio 2009 (archiviato dall'url originale il 12 giugno 2008).
  • manta, su cs.vu.nl.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica