# Commento (informatica)

Il commento, nell'ambito dei linguaggi di programmazione, è una sequenza delimitata di caratteri nel codice sorgente che non risulta nell'algoritmo risolutivo codificato e che solitamente ha lo scopo di descriverne le caratteristiche funzionali, ovvero di spiegare il funzionamento delle linee di codice adiacenti.
Durante il processo di compilazione o interpretazione queste istruzioni sono ignorate e di conseguenza non concorrono a determinare la difficoltà computazionale e il peso del file eseguibile. Queste notazioni hanno particolare rilevanza, soprattutto se il programma è sviluppato da più collaboratori e in un ampio arco temporale, infatti aumenta la leggibilità (o intelligibilità) per il lettore e favorisce così manutenzione e aggiornamento del codice. I commenti vengono spesso usati anche per omettere temporaneamente l'esecuzione di alcune porzioni di codice, in modo che non vengano eseguite senza tuttavia rimuoverle dal codice sorgente stesso. Quest'ultima pratica è spesso usata in fase di debugging del programma.

## Panoramica

I commenti sono generalmente formattati come commenti di blocco (chiamati anche commenti di prologo o commenti di flusso) o commenti di riga (chiamati anche commenti in linea).
I commenti di blocco delimitano un'area del codice sorgente che può estendersi su più righe o su una parte di una singola riga. Questa regione è specificata con un delimitatore iniziale e un delimitatore finale. Alcuni linguaggi di programmazione (come MATLAB) consentono di annidare ricorsivamente i commenti a blocchi, al contrario di altri (come Java).
I commenti di riga iniziano con un delimitatore e continuano fino alla fine della riga o, in alcuni casi, iniziano da una colonna specifica (offset di riga dei caratteri) nel codice sorgente e continuano fino alla fine della riga.
Alcuni linguaggi di programmazione utilizzano commenti di blocco e di riga con delimitatori di commento diversi. Ad esempio, C++ ha commenti di blocco delimitati da /* e */ che possono estendersi su più righe, mentre i commenti di riga sono delimitati da //. Altre tipologie di linguaggio supportano solo un tipo di commento, ad esempio i commenti in Ada possono essere solo di linea: iniziano con -- e continuano fino alla fine della riga.

### Sollievo dallo stress

A volte i programmatori aggiungono commenti per alleviare lo stress criticando gli strumenti di sviluppo, i concorrenti, i datori di lavoro, le condizioni di lavoro o la qualità del codice stesso. Il verificarsi di questo fenomeno può essere facilmente visto dalle risorse online che tracciano parolacce nel codice sorgente.

## Descrizione
### Linguaggi di programmazione

Ogni linguaggio possiede una propria sintassi per permettere al programmatore di inserire commenti nel codice. Nella tabella sottostante sono riportate le indicazioni relative ad alcuni dei più utilizzati linguaggi di programmazione e di markup.
| Linguaggio | Commento di riga | Commento di blocco |
| Assembly | ; | |
| Autoit | ; | #cs #ce |
| BASIC | REM oppure ' | |
| Bash | # |
| C | // | /* */ |
| C++ | // | /* */ |
| C# | // | /* */ |
| Cobol | * nella settima colonna | |
| Fortran | ! | |
| HTML | | <!-- --> |
| Java | // | /* */ |
| JavaScript | // | /* */ |
| Matlab | % | %{ ... %} |
| Pascal | | { } oppure (* *) |
| PHP | // oppure # | /* */ |
| Python | # | """ """ |
| YAML | # | # |

## Problemi di sicurezza

Nei linguaggi interpretati i commenti sono visualizzabili dall'utente finale nel codice del programma. In alcuni casi, ciò potrebbe presentare una vulnerabilità di sicurezza.

## Normative

Esistono vari punti di vista normativi e opinioni di lunga data sull'uso corretto dei commenti nel codice sorgente. Alcuni di questi sono informali e basati sulle preferenze personali, mentre altri sono pubblicati o promulgati come linee guida formali per una particolare comunità o gruppo di lavoro.

### Necessità di commenti

Gli esperti di informatica teorica hanno punti di vista divergenti sull'opportuna quantità e posizione di commenti nel codice sorgente. Alcuni affermano che dovrebbe contenere pochi commenti, basandosi sul fatto che il codice dovrebbe essere auto esplicativo (o auto-documentante). Altri suggeriscono che dovrebbe essere ampiamente commentato per aumentarne chiarezza e leggibilità (non è raro che oltre il 50% dei caratteri diversi da spazi nel file sorgente siano contenuti nei commenti).
I sostenitori di ambedue i punti di vista concordano che i commenti non sono di per sé né vantaggiosi né dannosi, ma ciò che conta è che siano corretti e mantenuti inerenti al codice sorgente, o omessi se superflui, eccessivi, inefficaci o comunque inutili.
I commenti vengono talvolta utilizzati per documentare i contratti nei progetti su commissione.