Ogni linguaggio di programmazione e markup ha una sua particolare forma di codice sorgente, a volte indicato semplicemente come “sorgente”. Questo codice consiste in una descrizione delle attività che un computer deve eseguire ed è scritto e memorizzato in un formato di testo che un essere umano può leggere facilmente. Parte del codice viene compilato prima dell’uso, un processo che trasforma il sorgente in un insieme di istruzioni in linguaggio macchina. Il testo in un linguaggio di markup come l’HTML non è tecnicamente codice sorgente nel senso puro del termine, ma viene spesso definito come tale. Esistono anche diverse categorie legali di codice sorgente con la divisione più importante tra open source e closed-source.
Ogni linguaggio di programmazione utilizza una sintassi diversa per rappresentare un algoritmo sottostante. Queste differenze significano che il codice sorgente varia da lingua a lingua. Alcuni linguaggi, come C e C++, sono correlati e condividono alcuni elementi di stile e sintassi.
Alcune convenzioni di stile di programmazione si verificano nella maggior parte dei linguaggi. Ad esempio, quasi tutte le lingue includono un sistema per denotare commenti o parti del codice destinate agli spettatori umani piuttosto che all’elaborazione da parte di un compilatore. Questa è una caratteristica così comune del codice sorgente che diversi stili di notazione dei commenti appaiono in più di un linguaggio di programmazione.
Tutto il vero codice sorgente deve essere eseguito tramite un compilatore e trasformato in linguaggio macchina prima di poter essere eseguito da un computer. In alcuni casi, come Python in modalità interattiva, questa attività viene eseguita in modo dinamico. In altri casi, il compilatore produce un file eseguibile che memorizza le istruzioni in linguaggio macchina per un uso successivo.
Il testo contrassegnato che costituisce gran parte del contenuto del Web non è tecnicamente codice sorgente. Esiste una certa somiglianza, tuttavia, poiché HTML e altri linguaggi di markup correlati trasmettono significato e descrivono le attività che devono essere eseguite da un computer, in particolare i modi in cui il testo e altre informazioni devono essere formattati e visualizzati. Pertanto, il testo che è stato contrassegnato in HTML viene spesso indicato come codice sorgente.
Legalmente parlando, ci sono due modelli per la proprietà della fonte e la distribuzione. Il software open source è un software il cui codice viene fornito, a volte senza alcun vincolo ea volte con un contratto di licenza open source che preserva alcuni diritti di base per l’autore. Alcuni di questi accordi limitano il tipo di modifiche che possono essere apportate al codice sorgente, ma alcuni stabiliscono semplicemente che il credito deve essere attribuito all’autore originale.
Il closed source è l’altra grande varietà legale del codice sorgente. In questo modello, al titolare della licenza viene fornito solo un file eseguibile. Agli utenti è vietato tentare di decompilare i file eseguibili per rivelare il codice sottostante. Questo modello legale domina il campo del software commerciale, sebbene anche alcuni modelli di business open source si siano dimostrati praticabili.