codice sorgente
Versione di un algoritmo scritta in un linguaggio di programmazione ad alto livello (ossia più vicino al linguaggio umano, tipicamente in pseudo inglese), le cui istruzioni sono poi eseguite dalla macchina mediante appositi programmi (compilatori, assemblatori o interpreti). L’impiego di un codice sorgente è finalizzato all’esecuzione, sull’insieme dei dati di ingresso, di azioni definite nel linguaggio di programmazione scelto tramite un numero limitato di istruzioni. Le modalità secondo cui le istruzioni vengono eseguite dalla macchina dipendono dal linguaggio di programmazione usato. Nei linguaggi di programmazione interpretati il codice sorgente viene letto, interpretato e tradotto in linguaggio macchina da un programma detto interprete. Invece, nei linguaggi di programmazione compilati (per es., il linguaggio C) il codice sorgente viene reso eseguibile tramite un processo in più fasi che impiega programmi opportuni di compilazione (tipicamente un precompilatore o preprocessore, un compilatore e un linker). Nel primo caso si ha una minore efficienza in fase di esecuzione, con un uso maggiore della memoria e una minor velocità a run-time, ma nel complesso l’interpretazione può risultare più rapida dell’intero ciclo di compilazione, permette un miglior debug rispetto al caso dei linguaggi compilati e non dipende dall’architettura. In linea di principio, in realtà, ogni linguaggio prescinde dall’implementazione che ne viene fatta sulla macchina. Tuttavia i linguaggi di programmazione sono opportunamente progettati per essere interpretati o per essere compilati. Vi sono poi linguaggi ibridi, che sfruttano le potenzialità di entrambi gli approcci: è il caso per es. di Java, che fa uso di un linguaggio intermedio detto byte code. Normalmente il codice sorgente è contenuto in più file e per programmi di vaste dimensioni può accadere che sia scritto ricorrendo a più linguaggi di programmazione, di ognuno dei quali si possono sfruttare le caratteristiche più adatte all’applicazione in esame. Alcuni linguaggi, come Java, consentono per es. di compilare separatamente parti (classi) del programma e poi di collegarle (linking) successivamente tra loro. A seconda della gratuità o meno del codice sorgente e dei programmi a esso correlati si può parlare di codice sorgente aperto (open source), la cui struttura è resa disponibile agli eventuali sviluppatori per modifiche o miglioramenti, e di codice sorgente segreto, il quale non viene reso pubblico ma resta protetto dal copyright. Al primo caso appartengono sistemi operativi open source come Linux, mentre al secondo sistemi operativi proprietari come le varie versioni di Microsoft Windows.
→ Programmazione, linguaggi di