compilatóre

sm. (f. -trice) [sec. XIV; da compilare]. Chi compila.In particolare, in informatica, programma per la codifica in un linguaggio eseguibile da parte di un elaboratore, di programmi sorgente scritti in linguaggio di programmazione ad alto livello, che consentono di descrivere variabili e operazioni di una certa complessità senza entrare nei dettagli. Un compilatore, oltre alle funzioni di traduzione da linguaggio simbolico a linguaggio di macchina, aggiunge quelle più complesse di interpretazione delle frasi e della relativa sostituzione con sequenze d'istruzioni talvolta complesse. Il programma risultante è una versione equivalente del programma sottoposto al compilatore, che specifica la stessa computazione espressa in origine. I moderni sistemi operativi sono dotati di compilatore per tutti i principali linguaggi di programmazione: ALGOL, FORTRAN, COBOL, PL/1, C, C++, Pascal, PERL e Java. Proprio per questi ultimi è stata sviluppata una speciale classe di compilatori detta JIT (Just In Time). Il processo di compilazione avviene in diverse fasi: prima si verifica la correttezza sintattica del programma fornito in ingresso al compilatore, poi se ne costruisce una rappresentazione astratta in forma di albero (per esempio un'istruzione di assegnamento a:=3+5 viene codificata nella forma (ASSIGN(a,PLUS(3,5))). L'albero viene analizzato per verificare la correttezza semantica delle istruzioni (per esempio controllando che gli operandi della somma e la variabile "a" siano di tipo intero). Successivamente si procede alla generazione di un codice intermedio, indipendente dal linguaggio di origine e da quello definito bersaglio. L'uso del codice intermedio, tradotto nel linguaggio macchina per ogni particolare piattaforma bersaglio, crea compilatori facilmente adattabili a diverse macchine, specializzate nelle fasi finali della compilazione. Il compilatore può effettuare diverse ottimizzazione del codice prodotto per velocizzarne l'esecuzione. Dagli anni Settanta si sono diffusi strumenti, tra cui lo YACC, per la generazione automatica di compilatori a partire dalla descrizione formale di un linguaggio.

Trovi questo termine anche in:

Quiz

Mettiti alla prova!

Testa la tua conoscenza e quella dei tuoi amici.

Fai il quiz ora