Kommentarer - förklaringar till programmets källkod , som finns direkt inuti den kommenterade koden. Syntaxen för kommentarer definieras av programmeringsspråket . Ur kompilatorns eller tolkarens synvinkel är kommentarer en del av programmets text som inte påverkar dess semantik. Kommentarer har ingen effekt på resultatet av sammanställningen av programmet eller dess tolkning. Förutom programkällkod används kommentarer även i märkningsspråk och beskrivningsspråk .
De flesta experter är överens om att kommentarer bör förklara programmerarens avsikt , inte koden; det som kan uttryckas i ett programmeringsspråk ska inte kommenteras - i synnerhet ska man använda meningsfulla namn för variabler, funktioner, klasser, metoder och andra entiteter (se Namnkonventioner ), dela upp programmet i lättförståeliga delar, sträva efter att göra klassstrukturen och databasstrukturen så begriplig och transparent som möjligt etc. Det finns till och med en åsikt (den följs i extrem programmering och vissa andra flexibla programmeringsmetoder ) att om kommentarer krävs för att förstå programmet så betyder det att det är dåligt skrivet.
Konceptet med läskunnig programmering insisterar på att inkludera så detaljerade och genomtänkta kommentarer i programmets text att det blir källtexten inte bara för den körbara koden, utan också för den medföljande dokumentationen .
Kommentarer används ofta för att tillfälligt inaktivera en kodbit. I C och C++ , några[ vem? ] rekommenderar att du använder förbearbetningsdirektiv ( #if 0... #endif) för samma ändamål.
Syntaxmässigt finns det två typer av kommentarer. En kommentar med flera rader kan vara av vilken längd som helst och är markerad med specialtecken i början och slutet (till exempel /* */). Vissa språk tillåter kapsling av kommentarer med flera rader, andra gör det inte.
En enradskommentar markeras med ett specialtecken i början (t.ex. //) och fortsätter till slutet av raden. Normalt kan enradskommentarer kapslas in i andra, enkel- eller flerradiga kommentarer. Inspelningsmetoder kan interfolieras, ur semantikens synvinkel är de desamma.
En annan sorts kommentarer - anteckningar - används i skisser av bevis på programs riktighet. Sådana kommentarer beskriver datorns tillstånd när programmet, under körning, når den punkt där kommentaren finns. Ett kommenterat program kallas för ett kommenterat program .
Speciellt formaterade kommentarer (så kallade dokumentationskommentarer ) används för att automatiskt skapa dokumentation , främst för funktions- eller klassbibliotek . För att göra detta används dokumentationsgeneratorer t.ex. javadoc [1] för Java-språket , phpDocumentor för PHP [2] , doxygen [3] för C och C++ osv.
Dokumentationskommentarer formateras vanligtvis som kommentarer i C -stil med flera rader . I varje fall måste kommentaren komma före det dokumenterade elementet. Det första tecknet i en kommentar (och i början av kommentarsraderna) måste vara *. Blocken separeras med tomma rader.
Exempel på dokumentationskommentarer
/** * Objektnamn eller kort beskrivning * * Utökad beskrivning * * @descriptor_name value * @return data_type */I vissa programmeringsmiljöer (t.ex. Eclipse , NetBeans , Python , Visual Studio ) används doc-kommentarer som en interaktiv ledtråd om gränssnittet för klasser och funktioner.
Under översättningen upptäcks kommentarer i det lexikaliska analysstadiet (och betraktas därför som symboler ). Igenkänning i förbearbetningsstadiet är dyrt och till och med behäftat med fel; att inkludera kommentarer i syntaxdiagram är nästan omöjligt.
Kommentarer bör ignoreras av kompilatorn, men i praktiken är det inte alltid så. Vissa specialkommandon till översättaren, som är mycket beroende av implementeringen av programmeringsspråket, formateras ofta som kommentarer.
Till exempel i Turbo Pascal - dialekten används pragmor {$I-}och {$I+}för att inaktivera och aktivera standard I/O-felkontroll. Liknande specialkommentarer används i HTML -markeringsspråket för att indikera typen av ett SGML- dokument, "flyktiga" stilmallar och skript i JavaScript och VBScript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> … < STYLE TYPE = "text/css" > <! -- … beskrivning av stilar -- > </ STYLE > … < SCRIPT TYPE = "text/javascript" > <!-- dölj skriptinnehåll från äldre webbläsare … JavaScript-skriptkod // slutet av dolt innehåll -- > < / SCRIPT >Vissa kommentarer som programmerare använder under sitt arbete. Kommentarer som denna är särskilt användbara när flera utvecklare arbetar med samma kod. Till exempel används vanligtvis en TODO-kommentar för att markera en kodsektion som programmeraren lämnar oavslutad för att kunna återvända till den senare. En FIXME-kommentar flaggar en bugg som har hittats och beslutas att fixas senare. Kommentar XXX indikerar att ett kritiskt fel hittats, utan att fixa vilket ytterligare arbete inte kan fortsätta.