Direttiva (programmazione)

Da Wikipedia, l'enciclopedia libera.

In programmazione, il termine direttiva si usa per descrivere determinati costrutti di un linguaggio di programmazione che, specificati nel codice sorgente di un programma, vengono letti ed eseguiti dal preprocessore. Le direttive consentono di effettuare delle operazioni preliminari sul codice sorgente prima che questo venga passato al compilatore o di definire dei parametri per specificare che tipo di compilazione deve essere eseguita.

La sintassi e l'uso delle direttive di compilazione variano sensibilmente da un linguaggio di programmazione all'altro.

Usi delle direttive di compilazione[modifica | modifica sorgente]

Debugging[modifica | modifica sorgente]

Tramite le direttive di compilazione, è possibile attivare o disattivare tutte le funzionalità di debugging all'interno di un programma o di un modulo (ad esempio una classe) semplicemente definendo un valore per una direttiva piuttosto che un altro.

Performance[modifica | modifica sorgente]

Le direttive di compilazione consentono di non compilare parti di codice che, ad esempio, non vengono mai utilizzate in un programma. In questo modo, all'avvio verrà risparmiata memoria inutilmente allocata. Un altro esempio è che è possibile informare il compilatore sul tipo di computer di destinazione per il programma; in tal modo, esso può trasformare il codice utilizzando istruzioni specifiche per il tipo di processore indicato, aumentando notevolmente le performance del programma in fase di esecuzione.

Selezione di funzionalità[modifica | modifica sorgente]

Inoltre, utilizzando le direttive di compilazione opportune è possibile in molti linguaggi far sì che il compilatore compili solo le funzionalità desiderate. Ad esempio, è possibile creare facilmente più versioni di uno stesso programma - ad esempio, Basic, Home e Professional - ognuna con funzionalità ben determinate e caratteristiche di tale versione.

Le direttive di compilazione in vari linguaggi di programmazione[modifica | modifica sorgente]

Linguaggio assembly[modifica | modifica sorgente]

Nel linguaggio assembly, le direttive generalmente specificano l'informazione della piattaforma target, specificano le separazioni tra le sezioni, e così via. Ad esempio, la direttiva "ALIGN" inserisce nella sezione corrente tanti byte quanti sono richiesti per preservare l'allineamento a livello di word.

C / C++[modifica | modifica sorgente]

Nel linguaggio C e nel C++ le direttive di compilazione vengono espresse da determinate istruzioni poste su righe di codice che comincino con un simbolo cancelletto "#" (ad esempio: #define e #include) e sono eseguite da un preprocessore.

I costrutti sintattici simili alle direttive del preprocessore C, quali la direttiva #if del C#, sono chiamati anch'essi "direttive", sebbene in alcuni casi non riguardino la vera e propria fase di preprocessamento.

Opzioni di compilazione in C per il compilatore gcc[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi CFLAGS.

Java[modifica | modifica sorgente]

In Java non esistono vere e proprie direttive di compilazione. L'unica cosa che "assomigli" ad esse è la seguente: è possibile evitare che il compilatore compili parti di codice all'interno di un metodo tramite l'uso di un blocco if che utilizzi come condizione una compile-time constant (si rimanda alle specifiche di linguaggio Java). In genere tale costante viene definita come un campo private static final, ad esempio private static final boolean _DEBUG.

VisualBasic[modifica | modifica sorgente]

Alcune versioni di questo linguaggio (Microsoft Visual Basic 6.0) supportano le direttive di compilazione. Le righe cominciano, come il C/C++, con il simbolo cancelletto ("#"). Esempio di compilazione condizionale:

#if DEBUG_VAR then 'istruzioni

Voci correlate[modifica | modifica sorgente]