Komentarz (informatyka)

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

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.

Komentarz to typowy lukier składniowy.

Spis treści

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

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

Język programowania Rodzaj Składnia
Assembler, AutoLISP liniowy [instrukcja] ; komentarz
Algol 60 blokowy begin comment komentarz; instrukcje ... end; instrukcje ...
blokowy [[instrukcja]]; comment komentarz; instrukcje ...
blokowy end komentarz <; lub end lub else>
inny: w delkaracji i wywołaniu procedury nazwa_proc(par1) komentarz_2:(par2) komentarz_3:(par3) ... komentarz_n(par_n);
Basic, Visual Basic liniowy [nr linii] REM komentarz
liniowy [nr linii] [Instrukcja] ' komentarz
C, PL/I, PL/M blokowy /* komentarz */
C++ blokowy /* komentarz */
liniowy [instr.] // komentarz
Clipper liniowy1) * komentarz
liniowy && komentarz
liniowy // komentarz
DBase liniowy [instrukcja] && komentarz
liniowy1) * komentarz
Fortran 77 liniowy1) C komentarz
liniowy1) * komentarz
Forth blokowy ( komentarz )
Icon, Perl liniowy [instrukcje] # komentarz
Jean liniowy1) * komentarz
Logo liniowy1)  ; komentarz
Modula 2 blokowy (* komentarz *)
Pascal blokowy { komentarz }
blokowy (* komentarz *)
Prolog liniowy  % komentarz
blokowy /* komentarz */
Simula 67 blokowy comment komentarz;
Snobol liniowy1) * komentarz
1) Znak komentarza musi być pierwszym znakiem w linii kodu:

Zestawienie według rodzajów

rodzaj typ, uwagi składnia języki programowania
liniowy cała linia, znak komentarza musi być pierwszym znakiem * komentarz Clipper, Cobol, DBase, Fortran 77, Snobol, Jean
C komentarz Fortran 77
; komentarz Logo
może być poprzedzony wyłącznie określoną jednostką leksykalną [nr_linii] REM komentarz Basic, Visual Basic
może być poprzedzony instrukcją/instrukcjami [instr.] ' komentarz Basic (niektóre dialekty), Visual Basic
[instr.] ; komentarz Asembler, AutoLISP
[instr.] // komentarz C++, Clipper
[instr.] && komentarz Clipper, DBase
[instr.] % komentarz Prolog
[instr.] # komentarz Icon, Perl
blokowy o zapisie swobodnym { komentarz } Pascal
(* komentarz *) Pascal, Modula 2, ML, Mathematica, Applescript, Ocaml
( komentarz ) Forth
/* komentarz */ C, C++, C♯, Java, JavaScript, PHP, SQL, Visual Prolog, CSS, PL/I, PL/M, Prolog
instrukcja; comment komentarz; instrukcje ... Algol 60, Simula 67
  • begin comment komentarz; instrukcje ... end;
  • end komentarz <; | end | else>
Algol 60
inne opis parametrów podprogramów nazwa_proc(par1) komentarz_2:(par2) komentarz_3:(par3) ... komentarz_n(par_n); Algol - można stosować w delkaracji i wywołaniu procedury

Zobacz też

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net