Kommentit - ohjelman lähdekoodin selitykset , jotka sijaitsevat suoraan kommentoitavan koodin sisällä. Ohjelmointikielen määrittelee kommenttien syntaksi . Kääntäjän tai tulkin näkökulmasta kommentit ovat osa ohjelman tekstiä, joka ei vaikuta sen semantiikkaan. Kommenteilla ei ole vaikutusta ohjelman käännöstulokseen tai sen tulkintaan. Ohjelman lähdekoodin lisäksi kommentteja käytetään myös sivunkuvauskielissä ja kuvauskielissä .
Useimmat asiantuntijat ovat samaa mieltä siitä, että kommenttien tulee selittää ohjelmoijan tarkoitus , ei koodia; sitä, mitä ohjelmointikielellä voidaan ilmaista, ei pidä kommentoida - etenkin muuttujille, funktioille, luokille, menetelmille ja muille entiteeteille tulee käyttää merkityksellisiä nimiä (ks. Nimeämiskäytännöt ), jakaa ohjelma helposti ymmärrettäviin osiin, pyrkiä tekemään luokkarakenteesta ja tietokantarakenteesta mahdollisimman ymmärrettävä ja läpinäkyvä jne. On jopa mielipide (se on noudatettu äärimmäisissä ohjelmointimenetelmissä ja joissakin muissa joustavissa ohjelmointimenetelmissä ), että jos ohjelman ymmärtämiseen tarvitaan kommentteja, se tarkoittaa, että se on huonosti kirjoitettu.
Lukutaitoisen ohjelmoinnin käsite vaatii niin yksityiskohtaisten ja harkittujen kommenttien sisällyttämistä ohjelman tekstiin, että siitä tulee lähdeteksti paitsi suoritettavalle koodille myös mukana tulevalle dokumentaatiolle .
Kommentteja käytetään usein poistamaan koodinpätkä tilapäisesti käytöstä. C : ssä ja C++ :ssa jotkut[ kuka? ] suosittelee käyttämään esikäsittelyohjeita ( #if 0... #endif) samaan tarkoitukseen.
Syntaksisesti kommentteja on kahdenlaisia. Monirivinen kommentti voi olla minkä pituinen tahansa, ja se on merkitty erikoismerkeillä alussa ja lopussa (esimerkiksi /* */). Jotkut kielet sallivat monirivisten kommenttien sisäkkäisyyden, toiset eivät.
Yksirivinen kommentti merkitään erikoismerkillä alkuun (esim //. ) ja jatkuu rivin loppuun. Normaalisti yksiriviset kommentit voidaan upottaa muiden, yksi- tai monirivisten kommenttien sisään. Tallennusmenetelmät voidaan lomittaa, semantiikan näkökulmasta ne ovat samat.
Toisen tyyppisiä kommentteja - huomautuksia - käytetään ohjelmien oikeellisuuden todisteluissa. Tällaiset kommentit kuvaavat tietokoneen tilaa, kun ohjelma saavuttaa suorituksen aikana pisteen, jossa kommentti sijaitsee. Annotoitua ohjelmaa kutsutaan annotoiduksi ohjelmaksi .
Erityisesti muotoiltuja kommentteja (ns. dokumentaatiokommentteja ) käytetään dokumentaation luomiseen automaattisesti , ensisijaisesti funktio- tai luokkakirjastoille . Tätä varten käytetään dokumentaatiogeneraattoreita , kuten javadoc [1] Java-kielelle , phpDocumentor PHP [2] , doxygen [3] C- ja C++ - kielelle jne .
Dokumentaatiokommentit muotoillaan yleensä monirivisiksi C -tyylisiksi kommenteiksi . Kussakin tapauksessa kommentin on tultava ennen dokumentoitua elementtiä. Kommentin ensimmäisen merkin (ja kommenttirivien alussa) on oltava *. Lohkot erotetaan tyhjillä viivoilla.
Esimerkki dokumentaatiokommentista
/** * Objektin nimi tai lyhyt kuvaus * * Laajennettu kuvaus * * @descriptor_name value * @return data_type */Joissakin ohjelmointiympäristöissä (esim. Eclipse , NetBeans , Python , Visual Studio ) doc-kommentteja käytetään interaktiivisena vihjeenä luokkien ja funktioiden käyttöliittymään.
Käännöksen aikana kommentit tunnistetaan leksikaalisessa analyysivaiheessa (ja näin ollen niitä pidetään merkkinä ). Tunnistaminen esikäsittelyvaiheessa on kallista ja jopa täynnä virheitä; kommenttien sisällyttäminen syntaksikaavioihin on lähes mahdotonta.
Kääntäjän tulee jättää kommentit huomioimatta, mutta käytännössä näin ei aina ole. Jotkut kääntäjälle annettavat erikoiskomennot, jotka ovat suuresti riippuvaisia ohjelmointikielen toteutuksesta, muotoillaan usein kommentteina.
Esimerkiksi Turbo Pascalin murreessa pragmat {$I-}ja {$I+}käytetään estämään ja ottamaan käyttöön standardi I/O-virheentarkistus. Samanlaisia erikoiskommentteja käytetään HTML - kuvauskielessä osoittamaan SGML - asiakirjan tyyppi, "pakottavat" tyylisivut ja komentosarjat JavaScriptissä ja VBScriptissä :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//FI" "http://www.w3.org/TR/REC-html40/strict.dtd"> … < TYYPPI = " text /css" > <! -- … tyylien kuvaus -- > </ STYLE > … < SCRIPT TYPE = "text/javascript" > <!-- piilota skriptisisältö vanhemmista selaimista … JavaScript-komentokoodi // piilotetun sisällön loppu -- > < / SCRIPT >Jotkut ohjelmoijat käyttävät kommentteja työssään. Tällaiset kommentit ovat erityisen hyödyllisiä, kun useat kehittäjät työskentelevät saman koodin parissa. Esimerkiksi TODO-kommenttia käytetään yleensä merkitsemään koodin osa, jonka ohjelmoija jättää keskeneräiseksi palatakseen siihen myöhemmin. FIXME-kommentti ilmoittaa virheestä, joka on löydetty ja joka päätetään korjata myöhemmin. Kommentti XXX tarkoittaa löydettyä kriittistä virhettä, jonka korjaamista ei voida jatkaa.