Il codice sorgente è l'elenco di istruzioni leggibili dall'uomo che un programmatore scrive, spesso in un programma di elaborazione testi, quando sta sviluppando un programma. Il codice sorgente viene eseguito attraverso un compilatore per trasformarlo in codice macchina, chiamato anche codice oggetto, che un computer può comprendere ed eseguire. Il codice oggetto è costituito principalmente da 1 e 0, quindi non è leggibile dall'uomo.
Il codice sorgente e il codice oggetto sono gli stati prima e dopo di un programma per computer che viene compilato. I linguaggi di programmazione che compilano il loro codice includono C, C ++, Delphi, Swift, Fortran, Haskell, Pascal e molti altri. Ecco un esempio di codice sorgente in linguaggio C:
/ * Programma Hello World * /
#includere
principale()
printf ("Hello World")
Non devi essere un programmatore di computer per dire che questo codice ha qualcosa a che fare con la stampa di "Hello World". Naturalmente, la maggior parte del codice sorgente è molto più complessa di questo esempio. Non è insolito che i programmi software abbiano milioni di righe di codice. È stato riferito che il sistema operativo Windows 10 ha circa 50 milioni di righe di codice.
Il codice sorgente può essere proprietario o aperto. Molte aziende custodiscono da vicino il loro codice sorgente. Gli utenti possono utilizzare il codice compilato, ma non possono vederlo o modificarlo. Microsoft Office è un esempio di codice sorgente proprietario. Altre aziende pubblicano il proprio codice su Internet, dove è gratuito per chiunque scaricarlo. Apache OpenOffice è un esempio di codice software open source.
Alcuni linguaggi di programmazione come JavaScript non vengono compilati nel codice macchina ma vengono invece interpretati. In questi casi, la distinzione tra codice sorgente e codice oggetto non si applica perché esiste un solo codice. Quel singolo codice è il codice sorgente e può essere letto e copiato. In alcuni casi, gli sviluppatori di questo codice possono crittografarlo intenzionalmente per impedire la visualizzazione. I linguaggi di programmazione interpretati includono Python, Java, Ruby, Perl, PHP, Postscript, VBScript e molti altri.