Skip to main content

Cos'è un compilatore?

Un compilatore è un tipo speciale di programma per computer che traduce un file di testo leggibile umano in una forma che il computer può comprendere più facilmente.Al suo livello più elementare, un computer può comprendere solo due cose, un 1 e un 0. A questo livello, un essere umano opererà molto lentamente e troverà le informazioni contenute nella lunga stringa di 1S e 0S incomprensibili.Un compilatore è un programma per computer che colma questo divario.

All'inizio, i compilatori erano programmi molto semplici che potevano solo tradurre i simboli nei bit , gli 1s e 0s, il computer compreso.I programmi erano anche molto semplici, composti da una serie di passaggi originariamente tradotti a mano in dati che il computer poteva capire.Questo è stato un compito molto richiedente, quindi parti di questa attività sono state automatizzate o programmate e è stato scritto il primo compilatore.Questo programma assemblato o compilato, i passaggi necessari per eseguire il programma passo -passo.

Questi semplici compilatori sono stati usati per scrivere un compilatore più sofisticato.Con la versione più recente, potrebbero essere aggiunte più regole al programma del compilatore per consentire una struttura in linguaggio più naturale per il programmatore umano con cui operare.Ciò ha reso i programmi di scrittura più facili e ha permesso a più persone di iniziare a scrivere programmi.Man mano che più persone hanno iniziato a scrivere programmi, sono state offerte più idee sui programmi di scrittura e utilizzati per realizzare compilatori più sofisticati.In questo modo, i programmi di compilatore continuano a evolversi, migliorare e diventare più facili da usare. I programmi di compilatore possono anche essere specializzati.Alcune strutture linguistiche sono più adatte per un compito particolare rispetto ad altri, quindi sono stati sviluppati compilatori specifici per compiti o lingue specifiche.Alcuni compilatori sono

multistage

o pass multiplo .Un primo passaggio potrebbe prendere un linguaggio molto naturale e avvicinarlo a un linguaggio comprensibile del computer.Un secondo o addirittura un terzo passaggio potrebbe portarlo nella fase finale, il file eseguibile. L'output intermedio in un compilatore multistage è generalmente chiamato

pseudo-codice

, poiché non è utilizzabile dal computer.Lo pseudo-codice è molto strutturato, come un programma per computer, non a flusso libero e verbosio come un linguaggio più naturale.L'output finale è chiamato file eseguibile , poiché è ciò che viene effettivamente eseguito o eseguito dal computer.Dividere l'attività in questo modo ha reso più facile scrivere compilatori più sofisticati, poiché ogni compito secondario è diverso.Ha anche reso più facile per il computer sottolineare dove aveva difficoltà a capire cosa gli è stato chiesto di fare. Errori che limitano il compilatore nella comprensione di un programma sono chiamati

Errori di sintassi

.Errori nel modo in cui le funzioni del programma sono chiamate errori logici .Gli errori logici sono molto più difficili da individuare e correggere.Gli errori di sintassi sono come errori di ortografia, mentre gli errori logici sono un po 'più simili a errori grammaticali. Sono stati sviluppati anche programmi di compilatore incrociati.Un compilatore incrociato consente un set di istruzioni di testo che è scritto per un computer progettato da un produttore specifico da compilare ed eseguire per un computer diverso da un produttore diverso.Ad esempio, un programma che è stato scritto per essere eseguito su un computer Intel a volte può essere compilato incrociato per eseguire un computer sviluppato da Motorola.Questo spesso non funziona molto bene.Al livello a cui funzionano i programmi per computer, l'hardware del computer può apparire molto diverso, anche se possono apparire simili a te. La compilazione incrociata è diversa dall'avere un computer emula un altro computer.Se un computer emula un computer diverso, fa fingere di essere quell'altro computer.L'emulazione è spesso più lenta della compilazione incrociata, poiché due programmi sono in esecuzione contemporaneamente, il programma che finge di essere l'altro computer e il programma in esecuzione.Tuttavia, affinché la compilazione incrociata funzioni, è necessario sia l'originaleTesto del linguaggio naturale che descrive il programma e un computer sufficientemente simili al computer originale su cui il programma può funzionare per eseguire su un computer diverso.Questo non è sempre possibile, quindi entrambe le tecniche sono in uso.