Komentarz to fragment kodu źródłowego, którego jedynym celem istnienia jest informowanie o czymś osoby czytającej źródła, a który nie ma żadnego wpływu na program - i jest zazwyczaj przez kompilator czy też interpreter pomijany.
Istnieją różne szkoły pisania komentarzy - od jednej skrajności, mówiącej, że z komentarzy powinno się móc wywnioskować wszystko co program robi, bez oglądania reszty źródeł, do drugiej, mówiącej, że jeśli kod nie jest oczywisty bez komentarzy, to jest to zły kod, a komentarze są właściwie zbędne.
Generalnie jednak panuje zgoda, że jeśli pisze się komentarz, komentowane powinno być to co kod robi, a nie jak to robi.
Właściwość komentarzy polegająca na ich "niewidzialności" z punktu widzenia kompilatora jest szeroko wykorzystywana jako metoda rozszerzania właściwości języka. W sekcjach stanowiących komentarze zapisywane są dyrektywy dla kompilatora (pascal), treści dla parserów tworzących dokumentacje, czy wręcz całe procedury (JavaScript wewnątrz HTML).
Rodzaje komentarzy
Podział komentarzy w językach programowania można dokonać na podstawie różnych kryteriów:
podział ze względu na sposób traktowania komentarzy przez translator
podział ze względu na składnię.
Podział ze względu na interpretację
Komentarz (wraz ze znakami wydzielającymi komentarz z kodu źródłowego) mogą być traktowane przez translator:
tak, jakby ich nie było, jako znak pusty (oznacza to możliwość wstawienia komentarza wewnątrz literału, np. wh{pętla}ile ; przy czym napis ten przez translator zostanie uznany za napis "while"
tak, jak odstęp, np. tak jak spację, np. while{początek pętli}a<b do ; komentarz traktowany jak spacja oddzieli słowo kluczowe "while" od identyfikatora "a"
tak, jak instrukcja pusta, np. REM w Basic-u, choć komentarz jest ignorowany, to poprzedzony etykietą umożliwia skok do tego miejsca w programie
w inny określony przez implementacje sposób.
Podział ze względu na składnię
Ze względu na składnię komentarz dzieli się na:
blokowe
liniowe
obejmujące całą linię
obejmujące linię od określonego znaku/znaków do końca linii
inne, specjalne.
Komentarz blokowe charakteryzują się tym, że
mają znak lub znaki otwierające komentarz i znak lub znaki zamykające komentarz, np. w języku C: znaki otwierające "/*" i znaki zamykające "*/"
powyższe daje możliwość:
umieszczania komentarzy wewnątrz linii kodu źródłowego (patrz wyżej)
tworzenia komentarz składających się z wielu linii tekstu bez konieczności poprzedzania każdej linii znakiem komentarza.
Komentarze liniowe to komentarze, które rozpoczynają się od określonego znaku/znaków, a kończą znakiem/znakami końca linii (np. znakiem o kodzie ASCII 13 lub parą znaków 13 i 10, albo innymi przyjętymi w danym systemie). Tworzenie komentarz składających się z kilku linii wymaga poprzedzania wszystkich linii tekstu znakami komentarza. Rozróżnić można dwa przypadki:
komentarzem musi być cała linia tekstu
komentarz rozpoczyna się w dowolnym miejscu linii kodu źródłowego od określonego znaku/znaków, a końcem komentarza jest koniec linii.