Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Codice sorgente - Teknopedia
Codice sorgente - Teknopedia
Niente fonti!
Questa voce o sezione sull'argomento programmazione non cita le fonti necessarie o quelle presenti sono insufficienti.

Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti.
Arduino (software)

In informatica, il codice sorgente (spesso detto sorgente o codice o listato[1]) è il testo di un algoritmo di un programma scritto in un determinato linguaggio di programmazione, compreso all'interno di un file sorgente, che definisce il flusso di esecuzione del programma stesso, ovvero la sua codifica software.

Il codice sorgente, scritto in un linguaggio di programmazione leggibile dagli esseri umani, fornisce indicazioni ai computer affinché questi possano tradurle (compilarle) in linguaggio macchina, costituendo così la base di siti web e programmi. Il processo di compilazione include i link alle librerie di sistema.[2]

Per estensione, l'espressione "codice sorgente" viene utilizzata anche per riferirsi a testo scritto in linguaggi informatici non di programmazione, come i linguaggi di markup (ad esempio HTML o XML) o i linguaggi di interrogazione, come Structured Query Language (SQL)

Obiettivo

[modifica | modifica wikitesto]

Il codice sorgente deve essere opportunamente elaborato per arrivare a un programma eseguibile dal processore, ponendosi dunque come punto di partenza ("sorgente") dell'intero processo che porta all'esecuzione del programma stesso da parte dell'hardware 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 l'installazione.

Struttura

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Ambiente (programmazione), Variabile (informatica), Costante (informatica), Struttura dati, Struttura di controllo, Istruzione (informatica) e Funzione (informatica).
Esempio di codice sorgente scritto in linguaggio Java

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 l'efficienza computazionale in termini di tempo di esecuzione e consumo di risorse (memoria e processore). Secondo la best practice si cercherà dunque di eliminare o evitare il più possibile codice ridondante e codice morto.

Scrittura

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Programmazione (informatica), Pseudocodice e Ambiente di sviluppo integrato.
Esempio di codice sorgente in Python. L'evidenziazione di alcune parti di codice è uno strumento comune fra i programmatori per orientarsi fra il codice. Visibile anche l'indentazione, le strutture condizionali e iterative.

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 all'interno 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 nell'SDK.

Tipicamente la scrittura del codice è una parte dell'intera fase di sviluppo (progettazione, realizzazione e testing) del software, gestita in tutti i suoi aspetti tramite conoscenze dell'ingegneria del software da una squadra di sviluppatori. Precede la scrittura del codice l'analisi dei requisiti e la strutturazione del software in moduli, mentre la segue la fase di debugging ovvero l'individuazione e risoluzione degli eventuali bug del codice stesso (ad es. tramite debugger) secondo le regole della sintassi e della semantica del linguaggio e l'effettiva rispondenza alle specifiche iniziali richieste (testing).

Nell'ambito 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 nell'ipotesi puramente indicativa-comparativa di un singolo sviluppatore.

Norme

[modifica | modifica wikitesto]
Esempio di codice sorgente scritto in C++

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

  • evidenziare parti di codice, tramite grassetto o a colori, operazione tipicamente effettuata di default dall'editor di testo del codice sorgente;
  • indentazione del codice mettendo in risalto con opportuni livelli di tabulazione (rientro) le varie parti del codice stesso;
  • inserire commenti ovvero righe di testo che non fanno parte del codice in sé (cioè dell'algoritmo risolutivo codificato in linguaggio di programmazione), ma che ne commentano il significato/funzionalità almeno nei suoi passi fondamentali. La corretta sintassi per l'inserimento 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.

Errori

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Bug (informatica) e Debugging.
Schema licenze software

Alla fine della stesura del codice il programmatore opera una prima fase di test valutando se l'output del programma è quello atteso compilando/interpretando ed eseguendo il codice. Durante lo sviluppo e l'esecuzione 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 run-time.

Licenze

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Licenza (informatica).

Nel caso di software proprietario, il codice sorgente non è normalmente fornito all'utente 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.

Note

[modifica | modifica wikitesto]
  1. ↑ Listato, in Grande Dizionario di Italiano, Garzanti Linguistica.
  2. ↑ Il codice sorgente: la base di ogni sito web e software, su IONOS Digitalguide. URL consultato il 6 aprile 2022.

Bibliografia

[modifica | modifica wikitesto]
  • Codice sorgente, in Enciclopedia della scienza e della tecnica, Roma, Istituto dell'Enciclopedia Italiana, 2007-2008.

Voci correlate

[modifica | modifica wikitesto]
  • Ambiente di sviluppo integrato
  • Ambiente di esecuzione
  • Application programming interface
  • Codice oggetto
  • Codice ridondante
  • Controllo di versione
  • Codice morto
  • Compilatore
  • Decompilatore
  • Configurazione (informatica)
  • Eccezione (informatica)
  • Fork (sviluppo software)
  • File sorgente
  • Hello world
  • Interprete (informatica)
  • Legacy code
  • Linguaggio di programmazione
  • Linker
  • Offuscatore
  • Preprocessing
  • Preprocessore
  • Programma (informatica)
  • Programmazione (informatica)
  • Programma eseguibile
  • Riuso di codice
  • Refactoring

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikiquote
  • Wikizionario
  • Wikimedia Commons
  • Collabora a Wikiquote Wikiquote contiene citazioni sul codice sorgente
  • Collabora a Wikizionario Wikizionario contiene il lemma di dizionario «sorgente»
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file sul codice sorgente

Collegamenti esterni

[modifica | modifica wikitesto]
  • Mauro Capelli, codice sorgente, in Enciclopedia della scienza e della tecnica, Istituto dell'Enciclopedia Italiana, 2008. Modifica su Wikidata
  • codice sorgente, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013. Modifica su Wikidata
  • (EN) Opere riguardanti Source code (Computer science), su Open Library, Internet Archive. Modifica su Wikidata
  • (EN) The Hello World Collection, su helloworldcollection.de.
Controllo di autoritàThesaurus BNCF 11123 · LCCN (EN) sh90003519 · GND (DE) 4488209-9 · BNF (FR) cb15918046v (data) · J9U (EN, HE) 987007532249405171
  Portale Informatica: accedi alle voci di Teknopedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Codice_sorgente&oldid=143962752"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022