I compilatori incrociati sono programmi in grado di produrre codice eseguibile che può essere eseguito su una piattaforma che non è attualmente la piattaforma residente per il compilatore. Sono comunemente usati quando uno sviluppatore ha bisogno di utilizzare più piattaforme per gestire le funzioni di elaborazione, come nei sistemi embedded in cui ogni computer embedded all’interno del sistema ha una quantità minore di risorse. L’utilizzo di un compilatore incrociato consente di superare questa mancanza di risorse creando un’esecuzione interconnessa tra i vari componenti del sistema.
Un esempio di quando potrebbe essere utilizzato un compilatore incrociato è quando i microcontrollori sono in uso all’interno di un sistema. Generalmente, un microcontrollore non contiene una grande quantità di memoria, quindi quando questo programma viene utilizzato per gestire la creazione e l’emissione dell’esecuzione dei comandi, meno risorse per il microcontrollore sono impegnate negli ordini amministrativi. Ciò significa che possono essere indirizzati all’esecuzione dell’attività ordinata dal compilatore.
Il programma può aiutare a creare una rete funzionante tra diversi tipi di macchine o anche diverse versioni di un sistema operativo. In questa applicazione, un’azienda potrebbe utilizzare sia versioni precedenti che più recenti di un sistema operativo per accedere a una rete comune, anche se le workstation dell’ufficio presentavano un’ampia gamma di computer desktop di età e capacità variabili. L’utilizzo di questo tipo di programma consente di raccogliere tutti questi vari elementi in un ambiente di costruzione coeso che consentirà a ciascuna delle stazioni di accedere a file e dati essenziali che risiedono sul server comune.
I compilatori incrociati possono essere fatti risalire ai primi giorni dello sviluppo di Windows® e al graduale declino dell’uso del DOS da parte di molti utenti finali. Oggi rimangono un mezzo comune per massimizzare l’efficienza di diversi componenti. Le macchine virtuali, come la JVM di Java, sono però in grado di gestire finalmente una parte delle funzioni che un tempo erano possibili solo con l’utilizzo di questo software.