Cos'è il codice sorgente?
Il codice sorgente è il testo leggibile di un programma, scritto da un programmatore in un linguaggio come Python, Java o C e salvato in file di testo semplice, che un compilatore o un interprete trasforma in istruzioni che il computer può eseguire.
Aggiornato il 24 settembre 2026
Apri un qualsiasi file che termina con .py, .c o .java in un editor di testo semplice e stai leggendo codice sorgente. È lo stesso tipo di file di una lista della spesa: lettere, cifre, spazi e a capo. Quello che lo rende un programma è che il testo segue le regole di un linguaggio di programmazione, quindi uno strumento può trasformarlo in istruzioni per il processore.
Com'è fatto il codice sorgente
Ecco un programma Python completo. Ogni riga è codice sorgente, compreso il commento, che il computer ignora e che il prossimo programmatore legge.
Total: 12
Lo stesso programma in C è anch'esso codice sorgente, solo in un altro linguaggio con altre regole:
#include <stdio.h>
int main(void) {
int price = 4;
printf("Total: %d\n", price * 3);
return 0;
}
Un'applicazione reale è fatta di migliaia di file come questi. Il kernel Linux ha più di 30 milioni di righe di codice sorgente, e una piccola web app può avere facilmente qualche centinaio di file. Ogni file ha un'estensione che indica agli strumenti quale linguaggio contiene:
| Estensione | Linguaggio |
|---|---|
.py | Python |
.c, .h | C |
.cpp, .hpp | C++ |
.java | Java |
.js | JavaScript |
.go | Go |
.rs | Rust |
Il codice sorgente è testo semplice
Il codice sorgente non ha font, colori né formattazione nascosta. I colori che vedi in un editor li aggiunge l'editor per facilitare la lettura; non vengono salvati nel file. Per questo scrivi codice in un editor di codice come VS Code e mai in Microsoft Word: un programma di videoscrittura salva dati di formattazione e virgolette "tipografiche", e il risultato è un file che il linguaggio non riesce a leggere, di solito rifiutato con un errore di sintassi.
Visto che è solo testo, un programma può perfino contenere il sorgente di un altro programma in una stringa ed eseguirlo:
<class 'str'>
3 lines of text
Total: 12
Fino all'ultima riga, source è una normale stringa. exec la passa a Python, che legge il testo e lo esegue. È tutta la vita del codice sorgente in miniatura: prima testo, poi istruzioni.
Come il codice sorgente diventa un programma in esecuzione
Il processore del tuo computer non sa leggere Python né C. Esegue solo codice macchina, cioè istruzioni binarie specifiche di un tipo di CPU (x86-64 nella maggior parte dei portatili e dei server, ARM nei telefoni e nei Mac con Apple Silicon). Qualcosa deve tradurre. Ci sono due modi principali:
- Un compilatore traduce tutto il programma in anticipo. Il comando
gcc hello.c -o hellolegge il sorgente C e scrive un nuovo file,hello, pieno di codice macchina. Dopo puoi cancellarehello.cehellocontinua a funzionare. - Un interprete esegue direttamente il sorgente. Il comando
python3 hello.pyavvia l'interprete Python, che leggehello.pyed esegue le sue istruzioni. Non viene prodotto un file di programma separato, quindi il sorgente deve esserci ogni volta.
Molti linguaggi combinano i due approcci. Il sorgente Java viene compilato da javac in bytecode (file .class), e la Java Virtual Machine esegue quel bytecode. Il confronto completo è nella pagina compilatore vs interprete.
Codice sorgente, codice oggetto e codice macchina
Questi tre termini descrivono lo stesso programma in fasi diverse:
| Termine | Chi lo legge | Esempio |
|---|---|---|
| Codice sorgente | Le persone e i compilatori | total = price * 3 in app.py |
| Codice oggetto | Il linker | hello.o, prodotto da gcc -c hello.c |
| Codice macchina (eseguibile) | La CPU | hello su Linux o macOS, hello.exe su Windows |
Se apri un eseguibile compilato in un editor di testo vedi simboli illeggibili, perché è binario, non testo. Su un Mac, i primi quattro byte del programma hello qui sopra sono cf fa ed fe in esadecimale, il marcatore di un eseguibile Mach-O. Puoi esaminare valori grezzi come questi con il convertitore di basi numeriche.
Open source e closed source
Chi può leggere il codice sorgente è una questione legale oltre che tecnica. Il software open source pubblica il proprio sorgente con una licenza che permette a chiunque di leggerlo, modificarlo e condividerlo. Python, Linux e Firefox sono open source. Il software closed source (proprietario) distribuisce solo il programma compilato. Microsoft Windows e Adobe Photoshop sono closed source, e il loro codice sorgente è un segreto industriale.
Il codice sorgente è anche protetto dal diritto d'autore, come un libro. Trovare del codice su internet non significa che tu possa riutilizzarlo: controlla il file della licenza, spesso chiamato LICENSE, prima di copiare qualsiasi cosa nel tuo progetto.
Falsi miti comuni
- "Visualizza sorgente pagina mostra il codice sorgente di un sito." Mostra l'HTML, il CSS e il JavaScript che il tuo browser ha ricevuto. La parte server del sito (scritta in Python, Java, PHP o un altro linguaggio) non lascia mai il server, quindi non puoi vederla.
- "Un decompilatore ti restituisce il sorgente originale." Un decompilatore ricostruisce codice leggibile a partire da un programma compilato, ma i commenti spariscono e i nomi spesso vanno persi, quindi il risultato è un'ipotesi sul sorgente, non il file che gli autori hanno scritto.
- "Codice e codice sorgente significano la stessa cosa." Il codice sorgente è la versione scritta da persone. "Codice" è più ampio e comprende anche il codice macchina, il bytecode e il codice generato.
- "Il codice sorgente deve essere in inglese." Parole chiave come
ifeprintsono parole inglesi, ma i nomi delle variabili, i commenti e le stringhe possono essere in qualsiasi lingua. I file sorgente di Python 3 sono in UTF-8 per impostazione predefinita, quindi siaprix = 4sia# 合計を計算するsono validi.
Cosa leggere dopo
Il codice sorgente viene controllato prima di essere eseguito, e la prima cosa che incontrano quasi tutti i principianti è l'errore di sintassi. Per vedere in cosa differiscono i due modi di eseguire il codice sorgente, leggi cos'è un compilatore e poi compilatore vs interprete. Puoi scrivere ed eseguire il tuo codice sorgente nel browser nel playground Python oppure iniziare il corso Python.
Domande frequenti
Qual è un esempio di codice sorgente?
app.py, un file C come main.c o il JavaScript di una pagina web. Conta anche una sola riga come print("Hello") salvata in un file .py. Programmi come Firefox o Linux sono fatti di milioni di righe di codice sorgente.Che differenza c'è tra codice e codice sorgente?
Come ottengo il codice sorgente di un programma?
L'HTML è codice sorgente?
.html che uno sviluppatore scrive sono il sorgente di una pagina web, e i browser chiamano la loro visualizzazione "Visualizza sorgente pagina". Lo stesso vale per i file CSS e per i file JavaScript che una pagina carica.