New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Kommentar (Programmierung) - Wikipedia

Kommentar (Programmierung)

aus Wikipedia, der freien Enzyklopädie

Kommentare sind Annotationen innerhalb von Programmiersprachen und Textbeschreibungssprachen. Alle diese Sprachen bestehen aus Anweisungen für den Computer (Code) und Hinweisen für Textbearbeiter (Kommentaren). Wird ein 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 rückschließen.

Vereinzelt werden Kommentare allerdings auch zur Speicherung maschinenlesbarer Metainformationen oder zur Ergänzung einer Sprache genutzt (siehe Ausnahmen).

Inhaltsverzeichnis

[Bearbeiten] Syntax allgemein

Für eine Sprache ist festgelegt, wo ein Kommentar beginnt und wo er endet. Man unterscheidet allgemein zwischen Block- und Zeilenkommentaren. Blockkommentare können sich über mehrere Zeilen erstrecken und enden nach der Einleitung erst bei dem Endzeichen. Zeilenkommentare enden automatisch am Zeilenende.

Der Inhalt eines Kommentars und somit auch sein Nutzen kann vom Bearbeiter frei gewählt werden und unterliegt keiner verbindlichen Syntax, außer 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, Klänge, etc.), da die meisten Sprachen nur solche Kommentare zulassen.

[Bearbeiten] Verwendung

Trotz der freien Verwendbarkeit werden Kommentare besonders oft in folgender Weise verwendet:

Informationen über 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 benötigter Dateien, einen Gruß an Programmierkollegen, etc.
Gliederung des Quelltextes
Überschriften und Abschnitte können als solche gekennzeichnet werden. Dabei werden häufig nicht nur sprachliche Mittel verwendet („Hier beginnt der residente Teil“) sondern auch grafische Mittel, die sich durch Text umsetzen lassen („****=- Residenter Teil -=****“)
Erläuterung einer einzelnen Zeile
So kann die Arbeitsweise oder Bedeutung eines Textteils (z. B. Programmzeile, Tag) erläutert werden, damit andere oder der Autor selbst diese später leichter verstehen.
Hinweis auf zu erledigende Arbeit
Kommentare können unzureichende Codestücke kennzeichnen („Hier muss noch die Unterstützung von Umlauten verbessert werden“) oder Platzhalter für komplett fehlende Codestücke sein („Hier Tabellendarstellung einfügen“).
Auskommentierung
Soll ein Bestandteil des Codes vorübergehend gelöscht, jedoch eventuell später wieder eingesetzt werden, so wird er auskommentiert. Das Codestück ist, sobald es im Kommentar verpackt ist, aus Sicht des Compilers kein Code mehr, d.h. es ist praktisch nicht mehr vorhanden.

[Bearbeiten] Ausnahmen: Verwendung entgegen der Definition

Ausnahmen von der obigen Definition von Kommentaren (Kommentare, die vom Computer nicht immer ignoriert werden) sind unter anderem:

Präprozessor
Sprachen, die keine eigene Syntax für Präprozessoranweisungen haben, verwenden spezielle Kommentare. Im ersten Durchlauf ermittelt der Präprozessor aus den Kommentaren die nötigen Informationen, im zweiten Durchlauf (Compilen, Interpretieren, etc.) werden diese Kommentare dann (wie alle Kommentare) überlesen.
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 Javascripts, die sich in HTML-Kommentaren verbergen. Dies ist meistens nur eine Übergangslösung, um mit älteren Programmen kompatibel zu bleiben, welche die eingebettete Sprache nicht verstehen würden und sie daher als Fehler betrachten würden.
Automatisierte Codeerstellung
Wird Code mit einer Entwicklungsumgebung erstellt (z.B. HTML-Editor), so kann diese Informationen in Kommentaren speichern, die für sie von Belang sind, für den Weiterverarbeiter des Codes (z.B. Browser) jedoch keinen Sinn haben.
Automatisierte Sourcecode-Dokumentation
Für einige Programmiersprachen existieren Hilfsprogramme, die spezielle Kommentare aus dem Quellcode extrahieren können und mithilfe einer Analyse des eigentlichen Programmcodes automatisch Softwaredokumentation generieren können. Werkzeuge dafür sind zum Beispiel Javadoc oder Doxygen.
Codegenerierung
Dabei wird durch spezielle Kommentare ermöglicht, im Quellcode Instruktionen für verschiedene Werkzeuge abzulegen. Ein Beispiel dafür ist XDoclet. Dabei werden sogenannte Annotationen durch einen eigenen Verarbeitungslauf verarbeitet und aus dem Quelltext neben dem eigentlichen Programm auch weiteren Dateien erzeugt.

[Bearbeiten] Code Beautifier

Oft wird der Quellcode mittels Code-Beautifier Programmen automatisch nachbearbeitet um den Quellcode den Standards und Coding Richtlinien gemäß zu formatieren.

[Bearbeiten] Syntax am Beispiel einiger Sprachen

Die Syntax von Kommentaren ist in den verschiedenen Sprachen unterschiedlich. Hier einige Beispiele:

Sprache Variante Syntax
C, C++, C#,
JavaScript, PHP,
Java, CSS
Blockkommentar Code /* Ein Kommentar,
der auch Zeilenumbrüche
enthalten darf. */
Code
Pascal Blockkommentar Code { Ein Kommentar,
mit Zeilenumbrüchen }
Code
C++, C#, Pascal, JavaScript,
PHP, Java, Bourne Shell,
PowerFlex
Zeilenkommentar Code // Kommentar, der bis zum Zeilenende geht
// Soll er weitergehen, muss er erneut als Kommentar
// gekennzeichnet werden.
Shell-Skript, Perl,
Python, PHP (selten),
Windows PowerShell
Zeilenkommentar # ein Kommentar bis zum Zeilenende
Assembler, Lisp, INI-Datei Zeilenkommentar ; Kommentar bis zum Zeilenende
BASIC, Batch (cmd.exe, ...) REM-Kommentar Kommentarzeile, die mit dem Befehl REM eingeleitet wird.
BASIC, Visual Basic Apostroph-Kommentar Code ' Kommentar bis zum Zeilenende
XML (z.B. XHTML), HTML, MediaWiki Kommentar mit SGML-Tags Code <!-- Kommentar --> Code
MATLAB, TeX, LaTeX Zeilenkommentar % ein Kommentar bis zum Zeilenende

Diese Liste ließe sich für verschiedene Sprachen beliebig weiterführen. Man sieht jedoch schon, dass die Verwendung von Kommentaren prinzipiell in allen Sprachen sehr ähnlich abläuft.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu