www.wikidata.de-de.nina.az
Kommentare sind Annotationen innerhalb von Programmiersprachen und Textbeschreibungssprachen Alle diese Sprachen bestehen aus Anweisungen fur den Computer Code und Hinweisen fur Textbearbeiter Kommentaren Kommentare dienen dazu den Quelltext fur den Menschen leichter verstandlich zu machen Wird der Quelltext weiterverarbeitet kompiliert interpretiert geparst etc dann werden Kommentare von der verarbeitenden Software ignoriert und haben daher keinen Einfluss auf das Ergebnis Der Nutzer bzw Betrachter des Ergebnisses kann daher auch nicht mehr auf die Existenz der Kommentare ruckschliessen sie dienen nur zur Dokumentation vor allem fur kunftige Bearbeiter des Textes Dieser Gebrauch des Wortes Kommentar weicht insofern von der Bedeutung dieses Wortes in der Literatur und Geschichtswissenschaft oder der Jurisprudenz ab als hier nicht jemand ein vorliegendes Werk eines anderen erlautert sondern der Verfasser selbst Anmerkungen zum Verstandnis anbringt die nicht Bestandteil des Programms oder Texts werden sollen Vereinzelt werden Kommentare allerdings auch zur Speicherung maschinenlesbarer Metainformationen oder zur Erganzung einer Sprache genutzt siehe Verwendung entgegen der Definition Inhaltsverzeichnis 1 Syntax allgemein 2 Verwendung 3 Verwendung entgegen der Definition 4 Syntax am Beispiel einiger Programmier und Auszeichnungssprachen 5 EinzelnachweiseSyntax allgemein BearbeitenFur eine Sprache ist festgelegt wo ein Kommentar beginnt und wo er endet Man unterscheidet allgemein zwischen Block und Zeilenkommentaren Zeilenkommentare enden automatisch am Zeilenende Blockkommentare auch mehrzeilige Kommentare genannt konnen sich uber mehrere Zeilen erstrecken und enden nach der Einleitung erst bei dem Endzeichen In manchen Sprachen sind Blockkommentare auch innerhalb eines einzelnen Code Befehls erlaubt Dies wird jedoch selten genutzt Der Inhalt eines Kommentars und somit auch sein Nutzen kann vom Bearbeiter frei gewahlt werden und unterliegt keiner verbindlichen Syntax ausser dass bei Blockkommentaren die Kommentar Endmarkierung im Kommentar selbst nicht enthalten sein darf In der Regel werden Kommentare in menschlicher Sprache festgehalten entweder in der Muttersprache des Autors oder in einer Allerweltssprache Kommentare bestehen meist nur aus Text d h keine Formatierungen Grafiken Klange usw da die meisten Sprachen nur solche Kommentare zulassen Verwendung BearbeitenTrotz der freien Verwendbarkeit werden Kommentare besonders oft in folgender Weise verwendet Informationen uber den gesamten Quelltext Zu Beginn eines Quelltextes kann der Autor Vorbemerkungen zu selbigem anbringen darunter Angabe des Autors der Lizenz des Erstellungsdatums Kontaktadresse bei Fragen Liste anderer benotigter Dateien einen Gruss an Programmierkollegen Gliederung des Quelltextes Uberschriften und Abschnitte konnen als solche gekennzeichnet werden Dabei werden haufig nicht nur sprachliche Mittel verwendet Hier beginnt der residente Teil sondern auch grafische Mittel die sich durch Text umsetzen lassen Residenter Teil Erlauterung einer einzelnen Zeile So kann die Arbeitsweise oder Bedeutung eines Textteils z B Programmzeile Tag erlautert werden damit andere oder der Autor selbst diese spater leichter verstehen Hinweis auf zu erledigende Arbeit Kommentare konnen unzureichende Codestucke kennzeichnen Hier muss noch die Unterstutzung von Umlauten verbessert werden oder Platzhalter fur komplett fehlende Codestucke sein Hier Tabellendarstellung einfugen Auskommentierung Soll ein Bestandteil des Codes vorubergehend unwirksam gemacht werden so wird er auskommentiert d h er wird in Kommentar umgewandelt Dieser Teil des Quelltextes ist dann aus Sicht des Compilers bzw Interpreters kein Code mehr was einer Loschung gleichkommt Er bleibt aber als Kommentar erhalten und kann spater wieder in Code umgewandelt werden Viele dieser Verwendungen sind allerdings umstritten Robert Cecil Martin unterscheidet beispielsweise zwischen folgenden guten und schlechten Kommentaren 1 gute Kommentare Rechtliche Kommentare wie beispielsweise Urheberrechtshinweise Informative Kommentare wie beispielsweise Erklarungen fur komplexe regulare Ausdrucke Intention Kommentare die klaren warum so und nicht anders programmiert wurde Klarung Kommentare die nicht anderbare obskure Argumente oder Ruckgabewerte erklaren Warnung vor Konsequenzen Kommentare die vor potentiell unerwunschten Konsequenzen warnen TODO Kommentare die auf noch offene Punkte hinweisen Hervorhebungskommentare die die Wichtigkeit eines ansonsten nicht leicht erkennbaren Punktes hervorheben Javadoc in offentlichen APIs die dem Verwender der API beispielsweise Verwendungshinweise geben schlechte Kommentare Murmeln Kommentare die kaum verstandlich sind und darum kaum Mehrwert bringen Redundante Kommentare die keinen Mehrwert zu den bereits vorhandenen Informationen bieten Irrefuhrende Kommentare die beispielsweise veraltet sind und falsche Dinge erklaren Beauftragte Kommentare die nur deshalb geschrieben werden weil sie jemand oder ein Prozess verlangt Tagebuchkommentare die darlegen wer wann was warum geandert hat Larm Kommentare die Informationen enthalten die fur ihre Leser irrelevant sind Kommentare statt Funktionen oder Variablen die durch die Refactorings Extract Method bzw Extract Variable ersetzt werden konnten Positionsmarker Kommentare die nur anzeigen dass ab dieser Position irgendetwas ist Schliessende Klammer Kommentare die anzeigen zu welcher offenen Klammer die Klammer gehort Verfasserkommentare die wie die Tagebuchkommentare darlegen wer den folgenden Code geschrieben hat Auskommentierter Code da fur den Leser nicht erkennbar ist welchen Zweck dieser Code bzw der Kommentar hat HTML Kommentare da schlecht lesbar Nichtlokale Informationen also Kommentare die sich auf Code beziehen der woanders als der Kommentar zu finden ist Zu viel Informationen Kommentare die mehr Informationen enthalten als fur den Leser an dieser Stelle relevant sind Kommentare die vom Leser mit dem sie betreffenden Code nicht oder nur schwer in Verbindung gebracht werden konnen Funktionsheader die besser durch eine geeignete Benennung der Funktion abgebildet werden sollten Javadoc in nicht offentlichem Code da der Verwender des Codes auch ublicherweise der Autor des Codes istHeutzutage gibt es auch oftmals feste Formate fur Kommentare die beispielsweise Ein und Ausgabeparameter einer Funktion oder Methode einzeln erlautern Dadurch konnen diese von automatischen Dokumentationsprogrammen wie doxygen oder javadoc verwendet werden um vollautomatisch eine menschenlesbare Dokumentation zu generieren Verwendung entgegen der Definition BearbeitenAusnahmen von der obigen Definition von Kommentaren Kommentare die vom Computer nicht immer ignoriert werden sind unter anderem Praprozessor Sprachen die keine eigene Syntax fur Praprozessoranweisungen haben verwenden spezielle Kommentare Im ersten Durchlauf ermittelt der Praprozessor aus den Kommentaren die notigen Informationen im zweiten Durchlauf Kompilieren Interpretieren usw werden diese Kommentare dann wie alle Kommentare uberlesen Einbettung von Fremdsprachen In Quelltexten die sich aus mehreren Sprachen zusammensetzen wird eine Sprache in die Kommentare der anderen eingebettet Das wohl bekannteste Beispiel sind JavaScript Anweisungen die sich in HTML Kommentaren verbergen Dies ist meistens nur eine Ubergangslosung um mit alteren Programmen kompatibel zu bleiben welche die eingebettete Sprache nicht verstehen wurden und sie daher als Fehler betrachten wurden Automatisierte Codeerstellung Wird Code mit einer Entwicklungsumgebung erstellt z B HTML Editor so kann diese Informationen in Kommentaren speichern die fur sie von Belang sind fur den Weiterverarbeiter des Codes z B Browser jedoch keinen Sinn haben Automatisierte Sourcecode Dokumentation Fur einige Programmiersprachen existieren Hilfsprogramme die spezielle Kommentare aus dem Quellcode extrahieren konnen und mithilfe einer Analyse des eigentlichen Programmcodes automatisch Softwaredokumentation generieren konnen Werkzeuge dafur sind zum Beispiel Sphinx Javadoc oder Doxygen Codegenerierung Dabei wird durch spezielle Kommentare ermoglicht im Quellcode Instruktionen fur verschiedene Werkzeuge abzulegen Ein Beispiel dafur ist XDoclet Dabei werden sogenannte Annotationen durch einen eigenen Verarbeitungslauf verarbeitet und aus dem Quelltext neben dem eigentlichen Programm auch weitere Dateien erzeugt Conditional Comments Spezielle Methode zum Ausfuhren von X HTML CSS Code im Internet Explorer 2 Hierbei werden Befehle die nur in gewissen Internet Explorer Versionen ausgefuhrt werden sollen innerhalb von Kommentar Tags geschrieben Ublicherweise wird diese Methode zum Laden von Stylesheets verwendet die gewisse Bugs in alteren IE Versionen korrigieren 3 Die Methode wird ab IE Version 10 nur noch eingeschrankt unterstutzt 4 Compiler Anweisungen Manche Sprachen die keine eigene Syntax fur Compiler Anweisungen haben verwenden Kommentare um dem Compiler spezielle Anweisungen zu geben Zum Beispiel In Pascal werden Kommentare deren erstes Zeichen ein ist als Compiler Direktive interpretiert Syntax am Beispiel einiger Programmier und Auszeichnungssprachen BearbeitenDie Syntax von Kommentaren ist in den verschiedenen Sprachen unterschiedlich Hier einige Beispiele das Wort Code steht dabei als Platzhalter fur beliebigen ausfuhrbaren Programmcode und soll verdeutlichen dass es in einigen Fallen nicht notig ist fur einen Kommentar oder die Fortsetzung des Quelltextes eine neue Zeile zu beginnen Sprache Variante SyntaxFortran Zeilenkommentar C ein Kommentar bis zum Zeilenende ein Kommentar bis zum Zeilenende Code So kann man auch mitten in einer Zeile einen Kommentar beginnenAlgol 60 Blockkommentar begin comment ein Kommentar nach begin bis zum Semikolon Code comment genauso auch nach Semikolon Codeend ein Kommentar nach der Endeklammer beendet durchbestimmte Zeichen im nachfolgenden Code CodeC C C D JavaScript PHP Java CSS SQL Blockkommentar Code Ein Kommentar der auch Zeilenumbrucheenthalten darf CodeC C C D JavaScript PHP Java Blockkommentar x 5 2 Ein Kommentar innerhalb einer Anweisung 3 D Blockkommentar geschachtelt Code Ein Kommentar der auch Unterkommentare enthalten darf CodePascal Modula 2 Oberon Seed7 AppleScript Blockkommentar Code Ein Kommentar mit Zeilenumbruchen CodePascal Blockkommentar Code Ein Kommentar mit Zeilenumbruchen CodeAutoIt Blockkommentar Code cs Ein Kommentar mit Zeilenumbruchen ce CodeC C C Pascal Object Pascal JavaScript PHP Java Bourne Shell PowerFlex Scilab Zeilenkommentar Code Kommentar der bis zum Zeilenende geht Soll er weitergehen muss die Zeile mit einem Backslash endenShellskript Perl Python R Ruby PHP selten Windows PowerShell Seed7 Tcl awk Zeilenkommentar Code ein Kommentar bis zum ZeilenendeAssembler Lisp INI Datei AutoIt Zonendatei Zeilenkommentar Code Kommentar bis zum ZeilenendeBASIC Batch cmd exe Zeilenkommentar REM Kommentar bis zum ZeilenendeBASIC Visual Basic Zeilenkommentar Code Kommentar bis zum ZeilenendeSGML HTML1 bis HTML4 Blockkommentar Nur ausserhalb von Tags und Deklarationen span style color 000 lt Kommentartext gt span span style color 000 span ist im Kommentartext unzulassigMehrfachkommentare sind zulassig span style color 000 lt Kommentar 1 Kommentar 2 gt span SGML HTML1 bis HTML4 Blockkommentar Nur innerhalb von Tags und Deklarationen span style color 000 Kommentartext span span style color 000 span ist im Kommentartext unzulassigXML z B XHTML HTML JavaScript 5 Blockkommentar Nur ausserhalb von Tags und Deklarationen span style color 000 lt Kommentartext gt span span style color 000 span ist im Kommentartext unzulassig span style color 000 span ist als letztes Zeichen im Kommentartext unzulassigAda AppleScript SQL Haskell VHDL Lua Zeilenkommentar Code ein Kommentar bis zum ZeilenendeErlang LaTeX Matlab PostScript TeX Zeilenkommentar Code ein Kommentar bis zum ZeilenendeMatlab Blockkommentar ab Version 7 x Code Ein Kommentar der auch Zeilenumbruche enthalten darf CodeABAP Zeilenkommentar Code ein Kommentar bis zum ZeilenendeCode ein Kommentar bis zum Zeilenende ein Kommentar bis zum Zeilenende CodeM4 Zeilenkommentar Code dnl ein Kommentar bis zum ZeilenendeLaTeX Blockkommentar Nur mitzusatzlichenPaketen wie verbatim oder comment Code begin comment Ein Kommentar mit Zeilenumbruchen end comment CodeMathematica Blockkommentar Code Ein Kommentar der auch Zeilenumbruche enthalten darf CodePython Blockkommentar Code Ein Kommentar der auch Zeilenumbruche enthalten darf CodeVimscript Zeilenkommentar Code ein Kommentar bis zum ZeilenendeLisp Zeilenkommentar Code ein Kommentar bis zum Zeilenende Manche LISP Dialekte benotigen zwei und manche einen Haskell Blockkommentar geschachtelt Code Ein Kommentar mit Zeilenumbruchen und einem geschachtelten Kommentar Ich bin der innere Kommentar und nur ich werde durch die folgende Zeichenkombination geschlossen der durch die folgende Zeichenkombination geschlossen wird Code Eine interessante Moglichkeit Kommentare einzusetzen bieten die esoterischen Programmiersprachen brainfuck und INTERCAL letztere in Verbindung mit dem Compiler ick 6 Alles was keinen gultigen Befehl darstellt wird vom Interpreter bzw Compiler ignoriert Kommentare mussen also nicht besonders ausgezeichnet werden Einzelnachweise Bearbeiten Robert Cecil Martin Clean Code A Handbook of Agile Software Craftsmanship Prentice Hall Upper Saddle River NJ u a 2008 ISBN 978 0 13 235088 4 4 Comments S 53 74 CSS Conditional comments SELFHTML Stylesheets CSS basierte Layouts Browserweichen HTML5 Parsing in IE10 IEBlog Site Home MSDN Blogs B 1 3 HTML like Comments In ECMAScript 2020 Language Specification Ecma International abgerufen am 26 November 2020 englisch Michael Mateas Nick Montfort A Box Darkly Obfuscation Weird Languages and Code Aesthetics PDF 385 kB Abgerufen von https de wikipedia org w index php title Kommentar Programmierung amp oldid 233498887