Komentarz (informatyka)

Komentarz – 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.

Komentarz to typowy lukier składniowy.

Zasady stosowania komentarzy 
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 wśród dobrych programistów panuje zgoda, iż jeśli pisze się komentarz, to komentowany powinien być powód, dla którego kod robi to, co robi, lub został napisany tak, a nie inaczej; nie powinien natomiast opisywać tego, co można z łatwością wyczytać – winien opisywać rzeczy, które nie są widoczne na pierwszy rzut oka patrząc na dany kawałek źródeł. Komentarz również nie powinien być błędny, gdyż powoduje to problemy podczas sprawdzania i konserwacji kodu. Nie powinno się również używać komentarzy do prowadzenia notatek, a jeśli już jego prowadzenie jest potrzebne ze względu na długie tworzenie kodu komentarze powinno się usunąć po uzupełnieniu programu.

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 implementację sposób.

Podział ze względu na składnię 
Ze względu na składnię komentarze dzieli się na:
 blokowe,
 liniowe,
 obejmujące całą linię,
 obejmujące linię od określonego znaku/znaków do końca linii,
 inne, specjalne.

Komentarze 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 */. Daje to możliwość:
 umieszczania komentarzy wewnątrz linii kodu źródłowego (patrz wyżej);
 tworzenia komentarzy 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 komentarzy 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.

Przykład w języku Basic:
  10 REM To jest komentarz składający się z całej linii kodu źródłowego
  20 LET A=1 ' A to komentarz od znaku ' do końca linii

Zestawienie komentarzy

Komentarze w językach programowania

Zestawienie według rodzajów

Przypisy

Bibliografia

Uwagi

Zobacz też 
 Jednostka leksykalna

Konstrukcje programistyczne