Che cos'è un compilatore di programmazione?

Un compilatore è un programma software che converte il codice di programmazione del computer scritto da un programmatore umano in codice binario (codice macchina) che può essere compreso ed eseguito da una CPU specifica. L'atto di trasformare codice sorgente nel codice macchina si chiama "compilation". Quando tutto il codice viene trasformato contemporaneamente prima che raggiunga le piattaforme che lo eseguono, il processo viene chiamato compilazione anticipata (AOT).

Quali linguaggi di programmazione utilizzano un compilatore AOT?

Molti noti linguaggi di programmazione richiedono un compilatore che includa:

  • Fortran
  • Pascal
  • Linguaggio assembly
  • C
  • C ++
  • veloce

Prima di Java e C #, tutti i programmi per computer erano compilati o interpretato.

Che dire del codice interpretato?

Il codice interpretato esegue le istruzioni in un programma senza compilarle in linguaggio macchina. Il codice interpretato analizza direttamente il codice sorgente, è associato a una macchina virtuale che traduce il codice per la macchina al momento dell'esecuzione o sfrutta il codice precompilato.

instagram viewer
Javascript viene generalmente interpretato.

Il codice compilato viene eseguito più velocemente del codice interpretato perché non è necessario eseguire alcun lavoro al momento dell'azione. Il lavoro è già finito.

Quali linguaggi di programmazione utilizzano un compilatore JIT?

Giava e C # usano compilatori just-in-time. I compilatori just-in-time sono una combinazione di compilatori e interpreti AOT. Dopo che un programma Java è stato scritto, il compilatore JIT trasforma il codice in bytecode anziché in codice che contiene istruzioni per il processore di una piattaforma hardware specifica. Il bytecode è indipendente dalla piattaforma e può essere inviato ed eseguito su qualsiasi piattaforma che supporti Java. In un certo senso, il programma è compilato in un processo in due fasi.

Allo stesso modo, C # usa un compilatore JIT che fa parte del Common Language Runtime, che gestisce l'esecuzione di tutte le applicazioni .NET. Ogni piattaforma di destinazione ha un compilatore JIT. Finché la conversione del linguaggio bytecode intermedio può essere compresa dalla piattaforma, il programma viene eseguito.

Pro e contro della compilazione AOT e JIT

La compilazione anticipata (AOT) offre tempi di avvio più rapidi, in particolare quando gran parte del codice viene eseguito all'avvio. Tuttavia, richiede più memoria e più spazio su disco. La compilazione JOT deve essere indirizzata alla meno capace di tutte le possibili piattaforme di esecuzione.

La compilation just-in-time (JIT) profila la piattaforma di destinazione mentre è in esecuzione e si ricompila al volo per offrire prestazioni migliori. JIT genera codice migliorato perché è indirizzato alla piattaforma corrente, sebbene di solito richieda più tempo per l'esecuzione rispetto al codice compilato AOT.

instagram story viewer