Direttiva (programmazione)

In programmazione, il termine direttiva o pragma (da "pragmatico") 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[1][2].

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

Usi delle direttive di compilazione

modifica

Debugging

modifica

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[3][4].

Performance

modifica

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[5][6].

Selezione di funzionalità

modifica

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[4].

Le direttive di compilazione in vari linguaggi di programmazione

modifica

Linguaggio assembly

modifica

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[7][8].

C / C++

modifica

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[9].

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[10].

Opzioni di compilazione in C per il compilatore gcc

modifica
  Lo stesso argomento in dettaglio: CFLAGS.

Visual Basic

modifica

Alcune versioni del Visual Basic supportano le direttive di compilazione. Le righe cominciano, come nel C e nel C++, con il simbolo cancelletto ("#"). Esempio di compilazione condizionale:

#if DEBUG_VAR then 'istruzioni'

  1. ^ Direttiva - Treccani, su Treccani. URL consultato il 9 maggio 2024.
  2. ^ Direttiva su Enciclopedia | Sapere.it, su Sapere.it, 4 giugno 2020. URL consultato il 9 maggio 2024.
  3. ^ (EN) Definition of compiler directive, su pcmag.com. URL consultato il 9 maggio 2024.
  4. ^ a b (EN) Understanding Compiler Directives in Software Development | Reintech media, su reintech.io. URL consultato il 9 maggio 2024.
  5. ^ (EN) Compiler Directives for Optimizing Code, su microfocus.com. URL consultato il 9 maggio 2024.
  6. ^ (EN) Ada Sedova, Andreas F. Tillack e Arnold N. Tharrington, Using Compiler Directives for Performance Portability in Scientific Computing: Kernels from Molecular Simulation, Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States), 1º gennaio 2019. URL consultato il 9 maggio 2024.
  7. ^ Microsoft PowerPoint - A5_Direttive-Syscall.ppt (PPT), su dei.unipd.it. URL consultato il 9 maggio 2024.
  8. ^ (EN) .align abs-expr, abs-expr, abs-expr, su sourceware.org. URL consultato il 9 maggio 2024.
  9. ^ Le Direttive condizionali, su html.it. URL consultato il 9 maggio 2024.
  10. ^ BillWagner, Direttive per il preprocessore C# - C#, su learn.microsoft.com, 14 marzo 2024. URL consultato il 9 maggio 2024.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica