Comentariu (programare)
Comentariile sunt adnotări în limbaje de programare și limbaje de descriere a textului . Toate aceste limbi constau în instrucțiuni pentru computer (cod) și note pentru editorii de text (comentarii). Comentariile sunt utilizate pentru a face textul sursă mai ușor de înțeles pentru oameni. Dacă textul sursă este procesat în continuare ( compilat , interpretat , analizat etc.), comentariile sunt ignorate de software-ul de procesare și, prin urmare, nu au nicio influență asupra rezultatului. Prin urmare, utilizatorul sau vizualizatorul rezultatului nu mai poate deduce existența comentariilor.
Cu toate acestea, ocazional, comentariile sunt folosite și pentru a stoca meta-informațiile citite de mașină sau pentru a completa o limbă (vezi #Utilizare contrară definiției ).
Sintaxa generală
Pentru o limbă, se specifică unde începe un comentariu și unde se termină. Se face o distincție generală între comentariile de bloc și de linie. Comentariile de linie se încheie automat la sfârșitul liniei. Comentariile bloc (numite și comentarii cu mai multe linii) se pot extinde pe mai multe linii și se pot termina cu caracterul final după introducere. În unele limbi, comentariile de blocare sunt permise și în cadrul unei singure comenzi de cod. Cu toate acestea, acest lucru este rar folosit.
Conținutul unui comentariu și, astfel, utilizarea acestuia pot fi selectate în mod liber de către editor și nu sunt supuse niciunei sintaxe obligatorii, cu excepția faptului că, în cazul comentariilor bloc, marcatorul final al comentariului nu trebuie inclus în comentariu. De regulă, comentariile sunt înregistrate în limba „umană”, fie în limba maternă a autorului, fie într-o limbă comună. Comentariile sunt în mare parte doar text (adică fără formatare, grafică, sunete etc.), deoarece majoritatea limbilor permit doar astfel de comentarii.
utilizare
Deși sunt libere de utilizat, comentariile sunt adesea folosite în următoarele moduri:
- Informații despre întregul cod sursă
- La începutul unui text sursă, autorul poate adăuga observații preliminare la acesta, inclusiv detalii despre autor, licență, data creării, adresa de contact pentru întrebări, o listă cu alte fișiere necesare și un salut către colegii de programare.
- Structura textului sursă
- Titlurile și secțiunile pot fi marcate ca atare. Adesea nu se utilizează doar mijloace lingvistice („Aici începe partea rezidentă”), ci și mijloace grafice care pot fi implementate prin text („**** = - partea rezidentă - = ****”)
- Explicația unei singure linii
- În acest fel, modul de operare sau semnificația unei părți a textului (de exemplu, linia programului, eticheta) poate fi explicat astfel încât alții sau autorul însuși să îl poată înțelege mai ușor mai târziu.
- Indicația muncii de făcut
- Comentariile pot indica bucăți de cod inadecvate („Suportul pentru umlauturi trebuie totuși îmbunătățit aici”) sau pot fi substituenți pentru bucăți de cod care lipsesc complet („Introduceți afișajul tabelului aici”).
- Comentează
- Dacă o componentă a codului trebuie să fie temporar ineficientă, aceasta este „comentată”, i. adică este convertit într-un comentariu. Din perspectiva compilatorului sau interpretului, această parte a textului sursă nu mai este cod, ceea ce echivalează cu o ștergere. Cu toate acestea, este păstrat ca un comentariu și poate fi ulterior reconvertit în cod.
Utilizați contrar definiției
Excepțiile de la definiția de mai sus a comentariilor (comentariile care nu sunt întotdeauna ignorate de computer) includ:
- Preprocesator
- Limbile care nu au propria sintaxă pentru instrucțiunile preprocesor folosesc comentarii speciale. În prima trecere, preprocesorul determină informațiile necesare din comentarii; în a doua trecere (compilarea, interpretarea etc.) aceste comentarii sunt apoi omise (ca toate comentariile).
- Incorporarea limbilor străine
- În textele sursă compuse din mai multe limbi, o limbă este încorporată în comentariile celeilalte. Probabil cel mai cunoscut exemplu sunt instrucțiunile JavaScript ascunse în comentariile HTML. Aceasta este în mare parte doar o soluție temporară pentru a rămâne compatibil cu programele mai vechi care nu ar înțelege limbajul încorporat și, prin urmare, le-ar considera ca fiind erori.
- Generare automată de cod
- Dacă codul este creat cu un mediu de dezvoltare (de exemplu, editor HTML), aceste informații pot fi stocate în comentarii relevante pentru dvs., dar care nu sunt de niciun folos pentru cei care procesează codul (de exemplu, browser).
- Documentație cod sursă automatizată
- Există programe auxiliare pentru unele limbaje de programare care pot extrage comentarii speciale din codul sursă și pot genera automat documentația software analizând codul programului real . Instrumentele pentru acest lucru sunt, de exemplu , Sfinx , Javadoc sau Doxygen .
- Generarea codului
- Comentariile speciale permit stocarea instrucțiunilor pentru diferite instrumente în codul sursă. Un exemplu în acest sens este XDoclet . Așa-numitele adnotări sunt procesate printr-o rulare separată și alte fișiere sunt generate din textul sursă în plus față de programul propriu-zis.
- Comentarii condiționate
- Metodă specială pentru executarea codului (X) HTML / CSS în Internet Explorer . Comenzile care ar trebui executate numai în anumite versiuni de Internet Explorer sunt scrise în etichetele de comentarii. De obicei, această metodă este utilizată pentru a încărca foi de stil care corectează anumite erori în versiunile mai vechi ale IE. Metoda este acceptată doar într-o măsură limitată din versiunea IE 10.
- Instrucțiuni ale compilatorului
- Unele limbi care nu au propria sintaxă pentru instrucțiunile compilatorului folosesc comentarii pentru a da instrucțiuni speciale compilatorului . De exemplu: În Pascal , comentariile al căror prim caracter este $ sunt interpretate ca o directivă de compilare.
Sintaxă folosind exemplul unor limbaje de programare și markup
Sintaxa comentariilor este diferită în diferite limbi. Iată câteva exemple, cuvântul cod reprezintă un substituent pentru orice cod de program executabil și este destinat să clarifice faptul că, în unele cazuri, nu este necesar să începeți o nouă linie pentru un comentariu sau continuarea textului sursă :
limba | variantă | sintaxă |
---|---|---|
Fortran | Comentariu de linie |
C un comentariu până la sfârșitul liniei * un comentariu până la sfârșitul liniei Cod ! Puteți începe un comentariu în mijlocul unei linii |
C , C ++ , C # , D , JavaScript , PHP , Java , CSS , SQL | Blochează comentariul |
Cod / * Un comentariu care poate conține și întreruperi de linie . * / Cod |
C , C ++ , C # , D , JavaScript , PHP , Java |
Blochează comentariul | $ x = 5 * (2 + / * un comentariu în cadrul unei instrucțiuni * / 3); |
D. | Blochează comentariul (imbricat) |
Cod / + Un comentariu / + care poate conține și sub- comentarii + / . + / Cod |
Pascal , Modula-2 , Oberon , Seed7 , AppleScript | Blochează comentariul |
Cod (* un comentariu, cu întreruperi de linie *) cod |
Pascal | Blochează comentariul |
Cod {un comentariu, cu întreruperi de linie} cod |
AutoIt | Blochează comentariul |
Cod #cs Un comentariu, cu întreruperi de linie #ce cod |
C , C ++ , C # , Pascal , Object Pascal , JavaScript , PHP , Java , Bourne-Shell , PowerFlex , Scilab | Comentariu de linie |
Cod // Comentariu care merge la sfârșitul liniei // Dacă ar trebui să continue, linia trebuie să se termine cu o \ backslash |
Script Shell , Perl , Python , R , Ruby , PHP (rar), Windows PowerShell , Seed7 , Tcl , awk | Comentariu de linie | Cod # comentariu la sfârșitul rândului |
Assembler , Lisp , fișier INI , AutoIt , fișier de zonă | Comentariu de linie | Cod ; Comentează la sfârșitul liniei |
DE BAZĂ , lot (cmd.exe, ...) | Comentariu de linie | REM comentariu la sfârșitul liniei |
BAZIC , Visual Basic | Comentariu de linie | Cod 'Comentează la sfârșitul liniei |
SGML (HTML1 la HTML4) | Blochează comentariul | Numai în afara etichetelor și declarațiilor: <!-- Kommentartext -->
Sunt permise mai multe comentarii |
SGML (HTML1 la HTML4) | Blochează comentariul | Numai în etichete și declarații: -- Kommentartext --
|
XML (de ex. XHTML ), HTML , JavaScript | Blochează comentariul | Numai în afara etichetelor și declarațiilor: <!-- Kommentartext -->
|
Ada , AppleScript , SQL , Haskell , VHDL , Lua | Comentariu de linie | Cod - un comentariu la sfârșitul liniei |
Erlang , LaTeX , Matlab , PostScript , TeX | Comentariu de linie | Codificați % a comentariu până la sfârșitul liniei |
Matlab | Blochează comentariul (din versiunea 7.x) |
Cod % { Un comentariu care poate conține întreruperi de linie . %} Cod |
ABAP | Comentariu de linie | Codificați „un comentariu la sfârșitul rândului |
Cod * un comentariu până la sfârșitul liniei * un comentariu până la sfârșitul liniei Cod | ||
M4 | Comentariu de linie | Cod dnl un comentariu la sfârșitul liniei |
Latex | Blochează comentariul (numai cu pachete suplimentare precum „text” sau „comentariu”) |
Cod \ begin {comment} Un comentariu, cu întreruperi de linie \ end {comment} cod |
Mathematica | Blochează comentariul |
Cod (* Un comentariu care poate conține întreruperi de linie . *) Cod |
Vimscript | Comentariu de linie | Codificați „un comentariu la sfârșitul rândului |
Lisp | Comentariu de linie |
Cod ;; un comentariu la sfârșitul liniei ; Unele dialecte LISP necesită două, iar altele necesită unul; |
Haskell | Blochează comentariul (imbricat) |
Cod {- Un comentariu, cu întreruperi de linie și un comentariu imbricat: {- Eu sunt comentariul interior și numai eu sunt închis de următoarea combinație de caractere: -} , care este închisă de următoarea combinație de caractere: -} Cod } |
Limbajele de programare ezoterice brainfuck și INTERCAL (acesta din urmă în legătură cu compilatorul „ick”) oferă o posibilitate interesantă de a folosi comentarii : Tot ceea ce nu este o comandă validă este ignorat de interpret sau compilator. Comentariile nu trebuie să fie marcate special.
Dovezi individuale
- ↑ CSS - Comentarii condiționate
- ↑ SELFHTML: foi de stil / machete bazate pe CSS / comutatoare de browser
- ↑ Analizare HTML5 în IE10 - IEBlog - Pagina principală a site-ului - Bloguri MSDN
- ↑ B.1.3 Comentarii de tip HTML. În: Specificația limbii ECMAScript ® 2020. Ecma International , accesat la 26 noiembrie 2020 .
- ↑ Michael Mateas, Nick Montfort: A Box, Darkly: Obfuscation, Weird Languages și Code Aesthetics . (PDF)