Intelligibilità e leggibilità del codice sorgente

In informatica, il codice sorgente non è altro che il testo di un algoritmo di un programma scritto da un programmatore in un linguaggio di programmazione. Tale codice viene elaborato in modo tale che possa dare vita a un programma che sia eseguibile dal processore: si chiama sorgente perché rappresenta l’inizio di tutto il processo che conduce all’esecuzione del programma (esecuzione che può comprendere anche la precompilazione, la compilazione e le fasi successive quali l’interpretazione, il caricamento, il linking e l’installazione).

Nella scrittura di un codice sorgente è bene seguire alcune regole di stile: grazie ad esse l’intelligibilità del codice stesso viene migliorata, così come la sua leggibilità, a vantaggio di chi non ha partecipato alla scrittura del codice. Questo può rivelarsi utile, per esempio, nel momento in cui si rivela necessario eseguire il debugging.

Tra queste regole di stile, una delle più frequenti prevede di evidenziare parti di codice specifiche. Si è soliti inoltre inserire delle righe di testo aggiuntive, i cosiddetti commenti, che hanno lo scopo di commentare la funzionalità e il significato dell’algoritmo risolutivo codificato in linguaggio di programmazione. Per ciascun linguaggio è prevista una sintassi diversa in relazione all’inserimento dei commenti.

Particolare attenzione, nella scrittura dei codici sorgenti, deve essere prestata agli errori. Si parla, in particolare, di errori di sintassi, che sono quelli che vengono compiuti mentre si scrive: possono essere, per esempio, errori relativi alla sintassi delle istruzioni, o semplicemente errori di ortografia intervenuti nella scrittura. Gli errori di sintassi hanno poca importanza, nel senso che vengono segnalati direttamente dal compilatore (che, per colpa loro, non è in grado di compilare il programma) e quindi possono essere corretti all’istante. L’editor dell’ambiente integrato di sviluppo, in sostanza, segnala l’errore al programmatore, che quindi lo identifica e lo risolve subito.

Nella fase di progettazione di un algoritmo si possono commettere gli errori semantici o errori logici, che possono essere provocati da una comprensione non corretta dei vincoli che devono essere rispettati dai dati in input o del problema che deve essere calcolato. La conseguenza è che viene progettato un algoritmo che non dà l’output che si desidera per le istanze del problema: gli errori di logica vengono individuati con difficoltà, e non di rado c’è bisogno del debugging.

Nella fase di esecuzione di un programma possono verificarsi gli errori di runtime, di frequente relativi all’impiego della memoria da parte del programma. Possono palesarsi anche se il codice viene compilato in modo preciso e se l’algoritmo è corretto e si verificano in modo particolare in programmazione dinamica e nell’uso dei puntatori.

Un codice sorgente, tipicamente, è costituito da dichiarazioni di variabili, istruzioni, costanti, funzioni e strutture di controllo del flusso di esecuzione. La struttura è una parte dello sviluppo complessivo che comprende progettazione, realizzazione e testing.

Secondo il teorema di Boehm-Jacopini, ogni algoritmo può essere implementato adottando unicamente tre strutture, sequenza, selezione e ciclo, che devono essere applicate per la composizione di istruzioni elementari in maniera ricorsiva.

Dal punto di vista pratico, può essere considerato uno stile di programmazione buono quello che prevede un codice sorgente steso tenendo conto della leggibilità del codice, fondamentale per la manutenibilità, senza trascurare l’importanza dell’efficienza computazionale per ciò che concerne il consumo delle risorse (il processore e la memoria) e il tempo di esecuzione: lo scopo, quindi, è di trovare il giusto compromesso tra le due esigenze.

Condividi