Che cos'è il "codice sorgente" e come può essere aperto?
Dato l'adozione in massa di computer nella nostra vita quotidiana, il "codice sorgente" è ogni giorno più una parte della nostra realtà. Dai misteriosi simboli raffigurati in Matrix (e c'è pure un film intitolato "Source Code"), fino al vero e proprio Open Source che scarichiamo, è possibile trovare riferimenti a questo "codice" da per tutto. Infatti, anche questa pagina che stai leggendo in questo momento ha un codice sorgente! Per visualizzarlo, fai un clic destro sulla pagina e selezioni "visualizzare sorgente" (potrebbe non esserci li a seconda del navigatore). Ma che cos'è questo codice sorgente e come può essere aperto (o chiuso)?
Cominciamo con una breve spiegazione delle differenze tra linguaggio macchina e il linguaggio umano. Il linguaggio umano che parliamo e scriviamo è composto da una dozzina di lettere che corrispondono a suoni che possono essere combinati per formare parole e frasi. I Computer parlano attraverso fili e utilizzano un linguaggio molto diverso. Inviano impulsi elettrici che hanno un significato per loro. Questa comunicazione ha solo due "lettere": on o off, segnale o nessun segnale, impulso o nessun impulso. Questo è chiamato il sistema numerico binario. Tutto ciò che facciamo su un computer si trasforma in una serie di zeri (nessun segnale) e uni (segnale).
Per esempio:
In numero 6 corrisponde a 110 nell sistema binario. La lettera k in codice binario diventa 01101011. La frase "Hello World" diventa “01001000 01100101 01101100 01101100 01101111 01010111 01101111 01110010 01101100 01100100”.
Ci si rende conto che è molto difficile per un essere umano di leggere in linguaggio macchina e che è pure molto difficile di fare in modo che macchine capiscono il linguaggio umano. Per colmare il divario tra uomo e macchina abbiamo inventato linguaggi di programmazione. Sono tra linguaggio umano e linguaggio macchina. Questi linguaggi di programmazione aiutano gli umani a scrivere -qualcosa- che può essere facilmente tradotto in codice binario.
Ad esempio (questo non è davvero in qualsiasi linguaggio di programmazione ma è molto simile):if (A < B & B < C){ return: A < C; }
Questo sembra una tipica istruzione in un linguaggio di programmazione che significa "Se A è più piccolo di B e B è più piccolo di C allora A è più piccolo di C". Queste istruzioni, scritte in un linguaggio di programmazione, vengono processati da un interpreti o un compilatore e trasformate in una serie di zero e uno che la macchina è in grado di leggere ed eseguire.
Ecco che arriva la parte interessante:
Il punto è che una volta che un programma viene compilato in codice binario non c'è modo di tornare indietro verso un linguaggio di programmazione o un linguaggio leggibile da un umano. Il cosiddetto "codice sorgente" è l'insieme di istruzioni originale e leggibile, scritte in un linguaggio di programmazione da un programmatore. Questo programmatore ha la possibilità di fornire una versione compilata del suo lavoro o di fornire il codice sorgente (o entrambi). Con una versione compilata, la gente può eseguire il programma, ma nessuno sa come il programmatore ha fato il lavoro. Con il codice sorgente, altri programmatori sono in grado di leggere le istruzioni, capire come funziona il programma ed eventualmente modificarlo.
Il Software Libero e Open Source sono sempre forniti con il loro codice sorgente. L'idea è che, se altri possono capire come funziona il software, possono aiutare a svilupparlo. Sviluppatori di software proprietario, invece, non rivelano il codice sorgente del proprio software in modo che nessuno può davvero sapere cosa fa il software. Questa è la grande differenza tra FOSS (Free and Open Source Software) e software proprietario.
Leggi anche:
The binary numeral system (Wikipedia)
The binary alphabet


Aggiungi un commento