W dzisiejszym świecie Komentarz (informatyka) stał się tematem o dużym znaczeniu i zainteresowaniu. Niezależnie od tego, czy ze względu na wpływ na społeczeństwo, znaczenie w historii, wpływ na kulturę popularną czy jakikolwiek inny aspekt, który go wyróżnia, Komentarz (informatyka) to temat, który zasługuje na dogłębne zbadanie. W tym artykule zagłębimy się w fascynujący świat Komentarz (informatyka), analizując jego różne aspekty i odkrywając jego znaczenie w obecnym kontekście. Od samego początku po dzisiejsze znaczenie Komentarz (informatyka) to temat, który nigdy nie przestaje intrygować zarówno ekspertów, jak i fanów. Dołącz do nas w tej podróży polegającej na odkrywaniu i poznawaniu 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.
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[1].
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[1].
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[2][3]), treści dla parserów tworzących dokumentacje, czy wręcz całe procedury (JavaScript wewnątrz HTML[4][5]).
Podział komentarzy w językach programowania można dokonać na podstawie różnych kryteriów:
Komentarz (wraz ze znakami wydzielającymi komentarz z kodu źródłowego) mogą być traktowane przez translator:
wh{pętla}ile
, przy czym napis ten przez translator zostanie uznany za napis while
;while{początek pętli}a<b do
, komentarz traktowany jak spacja oddzieli słowo kluczowe while
od identyfikatora a
;REM
w Basic-u[6][7], choć komentarz jest ignorowany, to poprzedzony etykietą umożliwia skok do tego miejsca w programie;Ze względu na składnię komentarze dzieli się na:
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[8][9][10]: znaki otwierające /*
i znaki zamykające */
. Daje to możliwość:
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:
Przykład w języku Basic[6][7]:
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
Język programowania | Rodzaj | Składnia |
---|---|---|
Assembler[11], AutoLISP | liniowy | ; komentarz
|
ALGOL 60[12] | blokowy | begin comment ; end;
|
blokowy | comment ;
| |
blokowy | end komentarz <; lub end lub else>
| |
inny: w deklaracji i wywołaniu procedury | nazwa_proc(par1) :(par2) :(par3) ... :(par_n);
| |
Bash | liniowy | #
|
Basic[6][7], Visual Basic[13][14] | liniowy | REM
|
liniowy | '
| |
PL/I[15][16], PL/M[17][18] | blokowy | /* */
|
C[8][9][10], C++[10], C#[19] | blokowy | /* */
|
liniowy | //
| |
Clipper[20] | liniowy1) | *
|
liniowy | &&
| |
liniowy | //
| |
DBase[21][22] | liniowy | &&
|
liniowy1) | *
| |
Fortran 77[23] | liniowy1) | C
|
liniowy1) | *
| |
Forth[24][25] | blokowy | ( )
|
Icon[26], Perl[27] | liniowy | #
|
Jean[28][29] | liniowy1) | *
|
Logo[30] | liniowy1) | ;
|
Makefile (Borland)[3] | liniowy | #
|
Modula 2[31] | blokowy | (* *)
|
Pascal[2][3] | blokowy | { }
|
blokowy | (* *)
| |
Prolog[32] | liniowy | % komentarz
|
blokowy | /* */
| |
PHP[33] | liniowy | #
|
liniowy | //
| |
blokowy | /* */
| |
Python[34] | liniowy | #
|
blokowy | """ """
| |
Simula 67[35] | blokowy | comment ;
|
Snobol[36] | liniowy1) | *
|
1) Znak komentarza musi być pierwszym znakiem w linii kodu: |
rodzaj | typ, uwagi | składnia | języki programowania |
---|---|---|---|
liniowy | cała linia, znak komentarza musi być pierwszym znakiem | * komentarz | Clipper[20], Cobol[37], DBase[21][22], Fortran 77[23], Snobol[36], Jean[28][29] |
C komentarz | Fortran 77[23] | ||
; komentarz | Logo[30] | ||
może być poprzedzony wyłącznie określoną jednostką leksykalną | REM komentarz | Basic[6][7], Visual Basic[13][14] | |
może być poprzedzony instrukcją/instrukcjami | ' komentarz | Basic (niektóre dialekty), Visual Basic[13][14] | |
; komentarz | Asembler[11], AutoLISP | ||
// komentarz | C++[10], Clipper[20], JavaScript | ||
&& komentarz | Clipper[20], DBase[21][22] | ||
% komentarz | Prolog[32] | ||
# komentarz | Icon[26], Perl[27], Makefile (Borland)[3], Python | ||
-- komentarz | SQL | ||
blokowy | o zapisie swobodnym | { komentarz } | Pascal[2][3] |
(* komentarz *) | Pascal, Modula 2[31], ML, Mathematica, AppleScript, Ocaml | ||
( komentarz ) | Forth[24][25] | ||
/* komentarz */ | C[8][9][10], C++[10], C♯, Java, JavaScript[4][5], PHP[38], SQL, Visual Prolog, CSS, PL/I[15][16], PL/M[17][18], Prolog[32] | ||
""" komentarz """ | Python[34] | ||
instrukcja; comment komentarz; instrukcje ... | ALGOL 60[12], Simula 67[35] | ||
|
ALGOL 60[12] | ||
<!--komentarz--> | Wiki, HTML, XML[a] | ||
inne | opis parametrów podprogramów | nazwa_proc(par1) komentarz_2:(par2) komentarz_3:(par3) ... komentarz_n(par_n); | ALGOL[12] – można stosować w deklaracji i wywołaniu procedury |