Rispondo ad una richiesta di Cosa di Computer ricevuta dal mio profilo TikTok. Mi si chiede se sia possibile aprire un software per guardarne il sorgente ed eventualmente modificarlo. È una domanda ottima che mi offre l’occasione di spiegare come vengono creati i programmi.

Intanto, cos’è un programma? Un computer (sia esso un PC, uno smartphone o uno smartwatch) è un apparecchio elettronico, al pari di una bistecchiera. Ciò che distingue un computer da una bistecchiera è che il primo è in grado di eseguire programmi. Ad esempio: Microsoft Word è un programma per PC; WhatsApp è un programma (chiamato “app“) per cellulari.
Come si fa a creare un programma? I computer non parlano il linguaggio naturale degli esseri umani: funzionano con la matematica. In sostanza, capiscono solo operazioni aritmetiche. Per facilitare agli esseri umani il compito di comunicare col computer, sono stati inventati i linguaggi di programmazione. Essi sono dei linguaggi “intermedi” che stanno a metà tra la matematica ed il linguaggio naturale. Quindi per creare un programma bisogna scriverne le istruzioni nel cosiddetto “codice sorgente”.
Esistono due tipi di linguaggi di programmazione: quelli “interpretati” e quelli “compilati”. In un linguaggio interpretato (ad esempio Python), il sorgente viene letto ed eseguito direttamente dal computer. In un linguaggio compilato, invece, il sorgente viene tradotto in un altro linguaggio, che poi viene eseguito dal computer. Ad esempio, i programmi nel linguaggio C vengono compilati (tradotti) in assembler, e l’assembler viene eseguito dal computer.


Torniamo alla domanda iniziale: è possibile modificare un programma? Se esso è stato scritto in Python o in un altro linguaggio interpretato, allora la risposta è si. Se invece è scritto in un linguaggio compilato, la risposta è no… o quasi! Infatti è possibile aprire i file “binari” (quelli che sotto windows hanno l’estensione .exe) con dei programmi speciali (gli editor esadecimali) che consentono di modificarli. Si tratta però di un’operazione molto complessa e non alla portata di tutti.
Impara l'informatica in due minuti al giorno: iscriviti alle cose di computer!