b'\n_START_ARTICLE_\nPreprocessore\n_START_SECTION_\nDescrizione\n_START_PARAGRAPH_\nTradizionalmente, i preprocessori sono programmi autonomi, ma per motivi di efficienza, si pu\xc3\xb2 avere un solo programma che incorpora le funzioni di un preprocessore e di un compilatore, oppure le funzioni di un preprocessore e di un interprete._NEWLINE_Un linguaggio di programmazione dotato di un preprocessore standard \xc3\xa8 il linguaggio C._NEWLINE_In tale linguaggio, si fa un uso massiccio delle funzioni del preprocessore, per dichiarare le funzioni di libreria utilizzate, per definire costanti, e anche per definire piccole routine da espandere in-line._NEWLINE_Di tale preprocessore \xc3\xa8 dotato anche il linguaggio C++; tuttavia, nei programmi scritti in C++ \xc3\xa8 possibile farne un uso meno massiccio, grazie ad alcune caratteristiche di questo linguaggio (funzioni inline, template di classi e di funzioni, variabili const)._NEWLINE_Un altro scopo comune dei preprocessori \xc3\xa8 permettere l\'inserimento di codice di un linguaggio di alto livello, per esempio SQL, all\'interno di un programma scritto in un linguaggio di pi\xc3\xb9 basso livello, per esempio C, COBOL, o Fortran._NEWLINE_In tal caso, il preprocessore traduce le istruzioni del linguaggio di pi\xc3\xb9 alto livello in istruzioni del linguaggio di livello inferiore._NEWLINE_L\'inserimento di istruzioni SQL in codice scritto in altri linguaggi, detto "SQL embedded", \xc3\xa8 implementato da alcuni DBMS come, per esempio, Oracle e DB2._NEWLINE_L\'uso massiccio di funzioni di preprocessore pu\xc3\xb2 rendere molto caotico il codice, pertanto i linguaggi di programmazione di formulazione recente forniscono caratteristiche che riducono o eliminano la necessit\xc3\xa0 di usare preprocessori._NEWLINE_Per esempio, il linguaggio Java non ha un preprocessore, mentre il linguaggio C# ha un preprocessore simile a quello del C, ma senza la possibilit\xc3\xa0 di includere file n\xc3\xa9 quella di definire macro parametrizzate._NEWLINE_Le istruzioni inserite nel codice per essere elaborate dal preprocessore sono solitamente dette "direttive"._NEWLINE_Per evitare al preprocessore l\'onere di comprendere il linguaggio di programmazione ospitante, le direttive del precompilatore devono essere facilmente distinguibili dal resto del codice._NEWLINE_Per esempio, nel preprocessore del C, le direttive sono righe che iniziano con il carattere "#".'