Che sia o non sia, dipende dal contesto. Pensaci in questo modo. Ho dimenticato qual è il nome formale del concetto, ma esiste una teoria del linguaggio che dice che le parole hanno un significato che non descrive ciò che è qualcosa, ma ciò che non è . Una mela rossa non è rossa perché è, beh, rossa, ma perché non è blu, non è verde, ecc. Ignora se è vero o no, ma presumi solo che sia per un secondo e pensa alla domanda in quel contesto.
Quindi, quando pensiamo a questo concetto, possiamo confrontare il nostro codice sorgente con un progetto di una casa. Se stai guardando il progetto da una serie di altri progetti e chiedi "questa è una casa", e gli altri progetti sono per edifici commerciali, ponti, ecc., La risposta sarebbe sì. Perché il progetto non rappresenta tutta quella roba e l'aspetto della casa è ciò che lo distingue dagli altri progetti.
Tuttavia, ovviamente, un progetto di una casa non è la stessa di una vera casa fatta di legno e cartongesso su cui ci si può sedere. Ci sono contesti in cui la differenza tra il progetto e la casa reale è significativa. C'è una differenza tra il piano e il deliverable.
Allo stesso modo il codice sorgente di un programma in un linguaggio compilato è come il modello, se lo si confronta a librerie, moduli del kernel, ecc., quindi il codice sorgente e il programma sono concettualmente uno e lo stesso. Ma se stai guardando come il software viene compilato, progettato e distribuito, i due non sono la stessa cosa. Di nuovo, c'è una differenza tra il piano e il deliverable.
tl; dr: A volte ciò che è qualcosa e ciò che rappresenta è considerato la stessa cosa, ma altre volte non lo sono.