Indietro

ⓘ Codice sorgente




Codice sorgente
                                     

ⓘ Codice sorgente

Il codice sorgente, in informatica, è il testo di un algoritmo di un programma scritto in un linguaggio di programmazione da parte di un programmatore in fase di programmazione, compreso allinterno di un file sorgente, definendo dunque il flusso di esecuzione del programma stesso, ovvero la sua codifica software o i linguaggi di database).

Esso dovrà essere opportunamente elaborato per arrivare a un programma eseguibile dal processore ponendosi dunque come punto di partenza "sorgente" dellintero processo che porta allesecuzione del programma stesso da parte dellhardware della macchina, e che può includere altre fasi come precompilazione, compilazione, interpretazione, caricamento e linking a seconda del tipo di linguaggio di programmazione utilizzato per concludersi con linstallazione.

                                     

1.1. Caratteristiche Licenze

Nel caso di software proprietario il codice sorgente non è normalmente fornito allutente dallo sviluppatore come lo è sempre il codice eseguibile per programmi compilati o il bytecode nel caso di programmi interpretati/semiinterpretati, mentre invece è disponibile nel caso di software open source e software libero.

                                     

1.2. Caratteristiche Struttura

Tipicamente un codice sorgente si compone di dichiarazioni di variabili locali e/o globali, eventuale inizializzazione di queste tramite assegnamento, costanti, istruzioni e funzioni che agiscono sulle variabili, strutture di controllo del flusso di esecuzione, secondo un certo paradigma di programmazione. Particolare rilevanza teorica al riguardo assume il teorema di Böhm-Jacopini che afferma che qualunque algoritmo può essere implementato utilizzando tre sole strutture, la sequenza, la selezione ed il ciclo iterazione, da applicare ricorsivamente alla composizione di istruzioni elementari.

In linea teorica un buono stile di programmazione prevede la stesura del codice sorgente cercando un compromesso tra la leggibilità del codice, a vantaggio della manutenibilità, e lefficienza computazionale in termini di tempo di esecuzione e consumo di risorse memoria e processore. Secondo la best practices si cercherà dunque di eliminare o evitare il più possibile codice ridondante e codice morto.

                                     

1.3. Caratteristiche Scrittura

La scrittura del codice sorgente presuppone la risoluzione a monte o di pari passo del problema iniziale da risolvere e automatizzare sotto forma di algoritmo risolutivo eventualmente ricorrendo ad un diagramma di flusso o ad uno pseudolinguaggio, di cui la fase di scrittura del codice rappresenta la fase implementativa programmazione ad opera di un programmatore tramite un editor di testo spesso compreso allinterno di un ambiente di sviluppo integrato rispettando lessico e sintassi del particolare linguaggio di programmazione scelto/utilizzato.

Il programmatore esperto salta spesso la fase di sviluppo in termini di algoritmo e passa direttamente alla fase successiva pensando direttamente la soluzione algoritmica del problema dato in termini di linguaggio di codifica ovvero linguaggio di programmazione o in pseudocodice.

Inoltre molti linguaggi per semplificare e velocizzare la stesura del codice mettono a disposizione una serie di librerie software che consentono di richiamare codice già scritto riuso di codice sotto forma di funzioni utili e ricorrenti raggruppate in cosiddette API application programming interface che vengono fornite al programmatore anche sotto forma di documentazione. In fase di compilazione il cosiddetto linker "collega" il programma scritto con le librerie richiamate. Spesso per la scrittura del codice si fa uso di un software development kit SDK e più spesso di un IDE a cui è possible agganciare la piattaforma software per lo sviluppo compresa nellSDK.

Tipicamente la scrittura del codice è una parte dellintera fase di sviluppo progettazione, realizzazione e testing del software, gestita in tutti i suoi aspetti tramite conoscenze dellingegneria del software da una squadra di sviluppatori. Precede la scrittura del codice lanalisi dei requisiti e la strutturazione del software in moduli, mentre la segue la fase di debugging ovvero lindividuazione e risoluzione degli eventuali bug del codice stesso ad es. tramite debugger secondo le regole della sintassi e della semantica del linguaggio e leffettiva rispondenza alle specifiche iniziali richieste testing.

Nellambito dello sviluppo software il codice sorgente di un programma e la sua complessità è valutato in termini di linee di codice prodotte o da produrre, mentre i tempi di realizzazione in anni-uomo nellipotesi puramente indicativa-comparativa di un singolo sviluppatore.



                                     

1.4. Caratteristiche Norme

Nella scrittura del codice, per migliorare la leggibilità e intelligibilità del codice sorgente a favore di chi non ha scritto il codice e favorire leventuale debugging, è buona prassi come regole di stile:

  • indentazione del codice mettendo in risalto con opportuni livelli di tabulazione rientro le varie parti del codice stesso;
  • evidenziare parti di codice, tramite grassetto o a colori, operazione tipicamente effettuata di default dalleditor di testo del codice sorgente;
  • inserire commenti ovvero righe di testo che non fanno parte del codice in sé cioè dellalgoritmo risolutivo codificato in linguaggio di programmazione, ma che ne commentano il significato/funzionalità almeno nei suoi passi fondamentali. La corretta sintassi per linserimento dei commenti marcatore del commento varia tipicamente da linguaggio di programmazione ad un altro con possibilità di inserimento di commento su una o più righe.
                                     

1.5. Caratteristiche Errori

Alla fine della stesura del codice il programmatore opera una prima fase di test valutando se loutput del programma è quello atteso compilando/interpretando ed eseguendo il codice. Durante lo sviluppo e lesecuzione di un codice sorgente possono verificarsi i cosiddetti "errori di programmazione" che si possono distinguere essenzialmente in tre principali categorie: errori di sintassi, errori di logica ed errori di runtime.