Kommentar (Computerprogrammierung) - Comment (computer programming)

Eine Abbildung des Java - Quellcode mit Prolog Kommentaren angezeigt in rot und Inline - Kommentaren in grün . Programmcode ist blau .

In der Computerprogrammierung ist ein Kommentar eine vom Programmierer lesbare Erklärung oder Anmerkung im Quellcode eines Computerprogramms . Sie werden hinzugefügt, um den Quellcode für den Menschen leichter verständlich zu machen, und werden im Allgemeinen von Compilern und Interpretern ignoriert . Die Syntax von Kommentaren in verschiedenen Programmiersprachen variiert erheblich.

Kommentare werden manchmal auch auf verschiedene Weise verarbeitet, um eine Dokumentation außerhalb des Quellcodes selbst durch Dokumentationsgeneratoren zu generieren , oder sie werden zur Integration in Quellcode-Verwaltungssysteme und andere Arten von externen Programmierwerkzeugen verwendet .

Die von Kommentaren gebotene Flexibilität lässt ein breites Maß an Variabilität zu, aber formale Konventionen für ihre Verwendung sind häufig Bestandteil von Programmierstilrichtlinien.

Überblick

Kommentare werden im Allgemeinen entweder als Blockkommentare (auch als Prologkommentare oder Stream-Kommentare bezeichnet ) oder als Zeilenkommentare (auch als Inline-Kommentare bezeichnet ) formatiert .

Blockkommentare begrenzen einen Quellcodebereich, der sich über mehrere Zeilen oder einen Teil einer einzelnen Zeile erstrecken kann. Diese Region wird mit einem festgelegten Starttrennzeichen und ein Ende Trennzeichen. Einige Programmiersprachen (wie MATLAB ) erlauben es, Blockkommentare rekursiv ineinander zu verschachteln, andere (wie Java ) jedoch nicht.

Zeilenkommentare beginnen entweder mit einem Kommentartrennzeichen und werden bis zum Ende der Zeile fortgesetzt, oder in einigen Fällen beginnen Sie an einer bestimmten Spalte (Zeilenoffset des Zeichens) im Quellcode und werden bis zum Ende der Zeile fortgesetzt.

Einige Programmiersprachen verwenden sowohl Block- als auch Zeilenkommentare mit unterschiedlichen Kommentartrennzeichen. C++ hat beispielsweise Blockkommentare, die durch getrennt sind /*und */sich über mehrere Zeilen erstrecken können, und Zeilenkommentare, die durch getrennt sind //. Andere Sprachen unterstützen nur einen Kommentartyp. Zum Beispiel Ada sind Kommentare Linie Kommentare: sie beginnen mit --und fahren bis zum Ende der Zeile.

Verwendet

Wie man Kommentare am besten nutzt, ist umstritten; verschiedene Kommentatoren haben unterschiedliche und manchmal gegensätzliche Standpunkte vertreten. Es gibt viele verschiedene Möglichkeiten, Kommentare zu schreiben, und viele Kommentatoren bieten widersprüchliche Ratschläge.

Planung und Überprüfung

Kommentare können als eine Form von Pseudocode verwendet werden , um die Absicht zu skizzieren, bevor der eigentliche Code geschrieben wird. In diesem Fall sollte es die Logik hinter dem Code erklären und nicht den Code selbst. .

/* loop backwards through all elements returned by the server 
(they should be processed chronologically)*/
for (i = (numElementsReturned - 1); i >= 0; i--) {
    /* process each element's data */
    updatePattern(i, returnedElements[i]);
}

Wird diese Art von Kommentar hinterlassen, vereinfacht dies den Überprüfungsprozess, indem ein direkter Vergleich des Codes mit den beabsichtigten Ergebnissen ermöglicht wird. Ein gemeinsamer logischer Fehlschluss ist , dass Code, der leicht zu verstehen ist , das tut , was es soll tun.

Codebeschreibung

Kommentare können verwendet werden, um Code zusammenzufassen oder die Absicht des Programmierers zu erklären. Nach dieser Denkweise wird die Neuformulierung des Codes in einfachem Englisch als überflüssig angesehen; die Notwendigkeit, Code neu zu erklären, kann ein Zeichen dafür sein, dass er zu komplex ist und neu geschrieben werden sollte, oder dass die Benennung schlecht ist.

"Dokumentieren Sie keinen schlechten Code – schreiben Sie ihn neu."
"Gute Kommentare wiederholen den Code nicht oder erklären ihn nicht. Sie verdeutlichen seine Absicht. Kommentare sollten auf einer höheren Abstraktionsebene als der Code erklären, was Sie zu tun versuchen."

Kommentare können auch verwendet werden, um zu erklären, warum ein Codeblock nicht den Konventionen oder Best Practices zu entsprechen scheint. Dies gilt insbesondere für Projekte mit sehr geringer Entwicklungszeit oder bei der Fehlerbehebung. Zum Beispiel:

' Second variable dim because of server errors produced when reuse form data. No
' documentation available on server behavior issue, so just coding around it.
vtx = server.mappath("local settings")

Algorithmische Beschreibung

Manchmal enthält Quellcode eine neuartige oder bemerkenswerte Lösung für ein bestimmtes Problem. In solchen Fällen können Kommentare eine Erläuterung der Methodik enthalten. Solche Erklärungen können Diagramme und formale mathematische Beweise umfassen. Dies kann eher eine Erläuterung des Kodex als eine Klarstellung seiner Absicht darstellen; aber andere, die mit der Pflege der Codebasis beauftragt sind, finden eine solche Erklärung möglicherweise entscheidend. Dies kann insbesondere bei hochspezialisierten Problembereichen der Fall sein; oder selten verwendete Optimierungen, Konstrukte oder Funktionsaufrufe.

Zum Beispiel kann ein Programmierer einen Kommentar hinzufügen, um zu erklären, warum eine Einfügungssortierung anstelle von Quicksort gewählt wurde , da erstere theoretisch langsamer ist als letztere. Dies könnte wie folgt geschrieben werden:

 list = [f (b), f (b), f (c), f (d), f (a), ...];
 // Need a stable sort. Besides, the performance really does not matter.
 insertion_sort (list);

Ressourceneinbindung

Logos , Diagramme und Flussdiagramme, die aus ASCII-Kunstkonstruktionen bestehen, können als Kommentar formatiert in den Quellcode eingefügt werden. Darüber hinaus können Copyright- Hinweise als Kommentare in den Quellcode eingebettet werden. Binäre Daten können auch in Kommentaren durch einen Prozess codiert werden, der als Binär-zu-Text-Codierung bekannt ist , obwohl eine solche Praxis ungewöhnlich ist und normalerweise auf externe Ressourcendateien verwiesen wird.

Das folgende Codefragment ist ein einfaches ASCII-Diagramm, das den Prozessablauf für ein Systemverwaltungsskript darstellt, das in einer Windows- Skriptdatei enthalten ist, die unter Windows Script Host ausgeführt wird . Obwohl ein Abschnitt, der den Code markiert, als Kommentar erscheint, erscheint das Diagramm selbst tatsächlich in einem XML- CDATA- Abschnitt, der technisch als von Kommentaren getrennt betrachtet wird, aber ähnlichen Zwecken dienen kann.

<!-- begin: wsf_resource_nodes -->
<resource id="ProcessDiagram000">
<![CDATA[
 HostApp (Main_process)
    |
    V
script.wsf (app_cmd) --> ClientApp (async_run, batch_process)
                |
                |
                V
         mru.ini (mru_history)  
]]>
</resource>

Obwohl dieses identische Diagramm leicht als Kommentar hätte eingefügt werden können, veranschaulicht das Beispiel einen Fall, in dem ein Programmierer möglicherweise keine Kommentare verwendet, um Ressourcen in den Quellcode aufzunehmen.

Metadaten

Kommentare in einem Computerprogramm speichern häufig Metadaten zu einer Programmdatei.

Insbesondere fügen viele Software-Maintainer Richtlinien zur Einreichung von Kommentaren hinzu, um Leuten, die den Quellcode dieses Programms lesen, zu helfen, alle von ihnen vorgenommenen Verbesserungen an den Maintainer zurückzusenden.

Andere Metadaten umfassen: den Namen des Erstellers der Originalversion der Programmdatei und das Erstellungsdatum der ersten Version, den Namen des aktuellen Betreuers des Programms, die Namen anderer Personen, die die Programmdatei bisher bearbeitet haben , die URL der Dokumentation zur Verwendung des Programms, der Name der Softwarelizenz für diese Programmdatei usw.

Wenn ein Algorithmus in einem Abschnitt des Programms auf einer Beschreibung in einem Buch oder einer anderen Referenz basiert, können Kommentare verwendet werden, um die Seitenzahl und den Titel des Buches oder die Bitte um Kommentare oder eine andere Referenz anzugeben.

Debugging

Eine gängige Vorgehensweise bei Entwicklern besteht darin , ein Code-Snippet auszukommentieren, d. h. eine Kommentarsyntax hinzuzufügen, die dazu führt, dass dieser Codeblock zu einem Kommentar wird, sodass er im endgültigen Programm nicht ausgeführt wird. Dies kann getan werden, um bestimmte Codeteile aus dem endgültigen Programm auszuschließen, oder (häufiger) kann es verwendet werden, um die Fehlerquelle zu finden. Durch systematisches Auskommentieren und Ausführen von Programmteilen kann die Fehlerquelle ermittelt und behoben werden.

Nachfolgend ein Beispiel für das Auskommentieren von Code zu Ausschlusszwecken:

Das obige Codefragment deutet darauf hin, dass sich der Programmierer aus irgendeinem Grund dafür entschieden hat, die Debugging-Option zu deaktivieren.

Viele IDEs ermöglichen das schnelle Hinzufügen oder Entfernen solcher Kommentare mit einzelnen Menüoptionen oder Tastenkombinationen. Der Programmierer muss nur den Textteil markieren, den er (un)kommentieren möchte, und die entsprechende Option auswählen.

Automatische Dokumentationserstellung

Programmiertools speichern manchmal Dokumentation und Metadaten in Kommentaren. Diese können Einfügepositionen für die automatische Einbindung von Header-Dateien, Befehle zum Festlegen des Syntaxhervorhebungsmodus der Datei oder die Revisionsnummer der Datei umfassen . Diese Kommentare zur Funktionssteuerung werden im Allgemeinen auch als Anmerkungen bezeichnet . Das Halten der Dokumentation in Quellcodekommentaren wird als eine Möglichkeit angesehen, den Dokumentationsprozess zu vereinfachen und die Chancen zu erhöhen, dass die Dokumentation bei Änderungen im Code auf dem neuesten Stand gehalten wird.

Beispiele für Dokumentationsgeneratoren sind die Programme Javadoc für Java , Ddoc für D , Doxygen für C , C++ , Java, IDL , Visual Expert für PL/SQL , Transact-SQL , PowerBuilder und PHPDoc für PHP . Formen von docstring werden von Python , Lisp , Elixir und Clojure unterstützt .

C# , F# und Visual Basic .NET implementieren eine ähnliche Funktion namens "XML-Kommentare", die von IntelliSense aus der kompilierten .NET- Assembly gelesen werden .

Syntaxerweiterung

Gelegentlich werden Syntaxelemente, die ursprünglich als Kommentare gedacht waren, umfunktioniert, um einem Programm zusätzliche Informationen zu übermitteln, wie z. B. " bedingte Kommentare ". Solche "heißen Kommentare" mögen die einzige praktische Lösung sein, die die Abwärtskompatibilität beibehält, aber sie werden weithin als Klumpen angesehen .

Richtlinie verwendet

Es gibt Fälle, in denen die normalen Kommentarzeichen verwendet werden, um eine spezielle Direktive für einen Editor oder Interpreter zu erstellen .

Zwei Beispiele dafür, einen Dolmetscher zu dirigieren, sind:

  • Der Unix-" Shebang " – #!– wird in der ersten Zeile eines Skripts verwendet, um auf den zu verwendenden Interpreter hinzuweisen.
  • "Magische Kommentare", die die Kodierung identifizieren, die eine Quelldatei verwendet, z. B. Pythons PEP 263.

Das folgende Skript für ein Unix-ähnliches System zeigt diese beiden Verwendungen:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
print("Testing")

Etwas ähnlich ist die Verwendung von Kommentaren in C, um einem Compiler mitzuteilen, dass ein standardmäßiger "Fallthrough" in einer case-Anweisung absichtlich durchgeführt wurde:

switch (command) {
    case CMD_SHOW_HELP_AND_EXIT:
      do_show_help();
      /* Fall thru */
    case CMD_EXIT:
      do_exit();
      break;
    case CMD_OTHER:
      do_other();
      break;
    /* ... etc. ... */
  }

Das Einfügen eines solchen /* Fall thru */Kommentars für menschliche Leser war bereits eine gängige Konvention, aber im Jahr 2017 begann der gcc- Compiler, nach diesen (oder anderen Hinweisen auf bewusste Absicht) zu suchen und, wenn er nicht gefunden wurde, auszusenden: "Warnung: Diese Aussage kann durchfallen" .

Viele Editoren und IDEs werden speziell formatierte Kommentare lesen. Zum Beispiel die "Modeline"-Funktion von Vim ; was die Handhabung von Tabs beim Bearbeiten einer Quelle mit diesem Kommentar am oberen Rand der Datei ändern würde:

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

Entspannung

Manchmal fügen Programmierer Kommentare hinzu, um Stress abzubauen, indem sie Kommentare zu Entwicklungstools, Konkurrenten, Arbeitgebern, Arbeitsbedingungen oder der Qualität des Codes selbst abgeben. Das Auftreten dieses Phänomens ist leicht aus Online-Ressourcen ersichtlich, die Obszönitäten im Quellcode verfolgen .

Normative Ansichten

Zur korrekten Verwendung von Kommentaren im Quellcode gibt es verschiedene normative Ansichten und langjährige Meinungen. Einige davon sind informell und basieren auf persönlichen Vorlieben, während andere als formelle Richtlinien für eine bestimmte Gemeinschaft veröffentlicht oder verkündet werden.

Bedarf an Kommentaren

Experten haben unterschiedliche Ansichten darüber, ob und wann Kommentare im Quellcode angebracht sind. Einige behaupten, dass Quellcode mit wenigen Kommentaren geschrieben werden sollte, auf der Grundlage, dass der Quellcode selbsterklärend oder selbstdokumentierend sein sollte . Andere schlagen vor, dass Code ausführlich kommentiert werden sollte (es ist nicht ungewöhnlich, dass über 50% der Nicht- Leerzeichen im Quellcode in Kommentaren enthalten sind).

Dazwischen steht die Behauptung, dass Kommentare an sich weder nützlich noch schädlich sind, sondern dass sie richtig und synchron mit dem Quellcode sind und weggelassen werden, wenn sie überflüssig, übertrieben, schwer zu pflegen oder anderweitig nicht hilfreich sind.

Kommentare werden manchmal verwendet, um Verträge im Design-by-Contract- Ansatz der Programmierung zu dokumentieren .

Detaillierungsgrad

Abhängig von der beabsichtigten Zielgruppe des Codes und anderen Überlegungen können der Detaillierungsgrad und die Beschreibung erheblich variieren.

Der folgende Java-Kommentar wäre beispielsweise in einem Einführungstext für den Einstieg in die Programmierung geeignet:

String s = "Wikipedia"; /* Assigns the value "Wikipedia" to the variable s. */

Dieser Detaillierungsgrad wäre jedoch im Kontext von Produktionscode oder anderen Situationen mit erfahrenen Entwicklern nicht angemessen. Solche rudimentären Beschreibungen widersprechen der Leitlinie: "Gute Kommentare ... klären Absicht." Darüber hinaus ist der Detaillierungsgrad für professionelle Codierungsumgebungen normalerweise gut definiert, um eine spezifische Leistungsanforderung zu erfüllen, die durch den Geschäftsbetrieb definiert wird.

Stile

Es gibt viele stilistische Alternativen, wenn es darum geht, wie Kommentare im Quellcode erscheinen sollen. Bei größeren Projekten, an denen ein Entwicklerteam beteiligt ist, werden Kommentarstile entweder vor Projektbeginn vereinbart oder entwickeln sich aufgrund von Konventionen oder Anforderungen mit dem Wachstum eines Projekts. Normalerweise bevorzugen Programmierer konsistente, nicht störende, leicht zu ändernde und schwer zu brechende Stile.

Kommentar blockieren

Die folgenden Codefragmente in C zeigen nur ein kleines Beispiel dafür, wie Kommentare stilistisch variieren können, während sie dennoch die gleichen grundlegenden Informationen vermitteln:

/*
     This is the comment body.
     Variation One.
*/
/***************************\
*                           *
* This is the comment body. *
* Variation Two.            *
*                           *
\***************************/

Faktoren wie persönliche Vorlieben, Flexibilität von Programmierwerkzeugen und andere Überlegungen beeinflussen tendenziell die Stilvarianten, die im Quellcode verwendet werden. Variante Zwei könnte beispielsweise bei Programmierern unbeliebt sein, die keine Quellcode-Editoren haben , die die Ausrichtung und visuelle Darstellung von Text in Kommentaren automatisieren können.

Der Softwareberater und Technologiekommentator Allen Holub ist ein Experte, der sich dafür einsetzt, die linken Ränder von Kommentaren auszurichten:

 /* This is the style recommended by Holub for C and C++.
  * It is demonstrated in ''Enough Rope'', in rule 29.
  */
 /* This is another way to do it, also in C.
 ** It is easier to do in editors that do not automatically indent the second
 ** through last lines of the comment one space from the first.
 ** It is also used in Holub's book, in rule 31.
 */

Die Verwendung von /* und */ als Trennzeichen für Blockkommentare wurde von PL/I in die Programmiersprache B vererbt, den unmittelbaren Vorgänger der Programmiersprache C.

Zeilenkommentare

Zeilenkommentare verwenden im Allgemeinen ein beliebiges Trennzeichen oder eine Folge von Token , um den Anfang eines Kommentars anzuzeigen , und ein Zeilenumbruchzeichen , um das Ende eines Kommentars anzuzeigen.

In diesem Beispiel wird der gesamte Text von den ASCII-Zeichen // bis zum Zeilenende ignoriert.

// -------------------------
// This is the comment body.
// -------------------------

Oft muss ein solcher Kommentar ganz links beginnen und sich über die ganze Zeile erstrecken. Doch in vielen Sprachen, es ist auch möglich , um einen Kommentar zu setzen inline mit einer Befehlszeile, um einen Kommentar zu ihm hinzuzufügen - wie in diesem Perl Beispiel:

print $s . "\n";     # Add a newline character after printing

Wenn eine Sprache sowohl Zeilenkommentare als auch Blockkommentare zulässt, können Programmierteams eine Konvention für deren unterschiedliche Verwendung festlegen: zB Zeilenkommentare nur für untergeordnete Kommentare und Blockkommentare zur Beschreibung von Abstraktionen auf höherer Ebene.

Stichworte

Programmierer können in Kommentaren informelle Tags verwenden , um bei der Indizierung allgemeiner Probleme zu helfen. Sie können dann möglicherweise mit gängigen Programmierwerkzeugen wie dem Unix- Dienstprogramm grep gesucht oder sogar in Texteditoren mit Syntaxhervorhebungen hervorgehoben werden . Diese werden manchmal als "Codetags" oder "Token" bezeichnet.

Solche Tags unterscheiden sich stark, können jedoch Folgendes umfassen:

  • BUG – ein bekannter Fehler , der behoben werden sollte.
  • FIXME – sollte korrigiert werden.
  • HACK – ein Workaround.
  • TODO – etwas zu tun.
  • UNDONE – eine Umkehrung oder ein "Rollback" des vorherigen Codes.
  • XXX – andere Programmierer vor problematischem oder irreführendem Code warnen

Beispiele

Vergleich

Typografische Konventionen zur Angabe von Kommentaren variieren stark. Darüber hinaus bieten einzelne Programmiersprachen manchmal einzigartige Varianten. Für eine detaillierte Überprüfung konsultieren Sie bitte den Artikel zum Vergleich der Programmiersprachen .

Ada

Die Programmiersprache Ada verwendet '--', um einen Kommentar bis zum Ende der Zeile anzuzeigen.

Zum Beispiel:

  -- the air traffic controller task takes requests for takeoff and landing
   task type Controller (My_Runway: Runway_Access) is
      -- task entries for synchronous message passing
      entry Request_Takeoff (ID: in Airplane_ID; Takeoff: out Runway_Access);
      entry Request_Approach(ID: in Airplane_ID; Approach: out Runway_Access);
   end Controller;

APL

APL verwendet , um einen Kommentar bis zum Ende der Zeile anzuzeigen.

Zum Beispiel:

⍝ Now add the numbers:
ca+b ⍝ addition

In Dialekten mit den Grundelementen ("links") und ("rechts") können Kommentare oft in oder in separaten Anweisungen in Form von ignorierten Zeichenfolgen enthalten sein:

d2×c 'where' ca+ 'bound' b

AppleScript

Dieser Abschnitt des AppleScript- Codes zeigt die beiden Kommentarstile, die in dieser Sprache verwendet werden.

(*
This program displays a greeting.
*)
on greet(myGreeting)
     display dialog myGreeting & " world!"
end greet

-- Show the greeting
greet("Hello")

BASIC

In diesem klassischen frühen BASIC -Codefragment wird das Schlüsselwort REM ( "Remark" ) verwendet, um Kommentare hinzuzufügen.

10 REM This BASIC program shows the use of the PRINT and GOTO Statements.
15 REM It fills the screen with the phrase "HELLO"
20 PRINT "HELLO"
30 GOTO 20

In späteren Microsoft BASICs, einschließlich Quick Basic , Q Basic , Visual Basic , Visual Basic .NET und VB Script ; und in Nachkommen wie FreeBASIC und Gambas wird jeder Text in einer Zeile nach einem ' (Apostroph) ebenfalls als Kommentar behandelt.

Ein Beispiel in Visual Basic .NET:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' The following code is executed when the user
        ' clicks the button in the program's window.
        rem comments still exist.

        MessageBox.Show("Hello, World") 'Show a pop-up window with a greeting
    End Sub
End Class

C

Dieses C -Codefragment demonstriert die Verwendung eines Prologkommentars oder "Blockkommentars", um den Zweck einer bedingten Anweisung zu beschreiben . Der Kommentar erklärt wichtige Begriffe und Konzepte und enthält eine kurze Signatur des Programmierers, der den Code verfasst hat.

 /*
  * Check if we are over our maximum process limit, but be sure to
  * exclude root. This is needed to make it possible for login and
  * friends to set the per-user process limit to something lower
  * than the amount of processes root is running. -- Rik
  */
 if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur
     && !capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE))
     goto bad_fork_free;

Seit C99 ist es auch möglich, die //-Syntax aus C++ zu verwenden, die einen einzeiligen Kommentar anzeigt.

Cisco IOS- und IOS-XE-Konfiguration

Das Ausrufezeichen ( ! ) In einem Cisco - Router - Konfigurationsmodus, aber solche Kommentare sind Zeichen Kommentare verwendet werden nicht auf gespeicherte nicht-flüchtigen Speicher (die die startup-config enthält), noch werden angezeigt sie von der „show run“ -Befehl .

Es ist möglich, menschenlesbaren Inhalt einzufügen , der tatsächlich Teil der Konfiguration ist und in der NVRAM- Startup-Config gespeichert werden kann über:

  • Der Befehl "description", der verwendet wird, um der Konfiguration einer Schnittstelle oder eines BGP- Nachbarn eine Beschreibung hinzuzufügen
  • Der Parameter "name", um einer statischen Route eine Bemerkung hinzuzufügen
  • Der Befehl "Bemerkung" in Zugriffslisten
! Paste the text below to reroute traffic manually
config t
int gi0/2
no shut
ip route 0.0.0.0 0.0.0.0 gi0/2 name ISP2
no ip route 0.0.0.0 0.0.0.0 gi0/1 name ISP1
int gi0/1
shut
exit

ColdFusion

ColdFusion verwendet Kommentare ähnlich wie HTML-Kommentare , aber anstelle von zwei Bindestrichen werden drei verwendet. Diese Kommentare werden von der ColdFusion-Engine abgefangen und nicht im Browser ausgegeben.

 <!--- This prints "Hello World" to the browser. --->
 <cfoutput>
   Hello World<br />
 </cfoutput>

Fortran IV

Dieses Fortran IV -Codefragment zeigt, wie Kommentare in dieser Sprache verwendet werden, die sehr spaltenorientiert ist. Ein Buchstabe "C" in Spalte 1 bewirkt, dass die gesamte Zeile als Kommentar behandelt wird.

C
C Lines that begin with 'C' (in the first or 'comment' column) are comments
C
      WRITE (6,610)
  610 FORMAT(12H HELLO WORLD)
      END

Beachten Sie, dass die Spalten einer Zeile ansonsten als vier Felder behandelt werden: 1 bis 5 ist das Label-Feld, 6 bewirkt, dass die Zeile als Fortsetzung der vorherigen Anweisung betrachtet wird; und Erklärungen und Erklärungen gehen in 7 bis 72.

Fortran 90

Dieses Fortran -Codefragment zeigt, wie Kommentare in dieser Sprache verwendet werden, wobei die Kommentare selbst die grundlegenden Formatierungsregeln beschreiben.

!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!* All characters after an exclamation mark are considered as comments *
!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
program comment_test
    print '(A)', 'Hello world' ! Fortran 90 introduced the option for inline comments.
end program

Haskell

Zeilenkommentare in Haskell beginnen mit '--' (zwei Bindestriche) bis zum Zeilenende, und mehrzeilige Kommentare beginnen mit '{-' und enden mit '-}'.

{- this is a comment
on more lines -}
-- and this is a comment on one line
putStrLn "Wikipedia"  -- this is another comment

Haskell bietet auch eine kompetente Programmiermethode zum Kommentieren, die als "Bird Style" bekannt ist. Dabei werden alle Zeilen, die mit > beginnen, als Code interpretiert, alles andere als Kommentar. Eine weitere Voraussetzung ist, dass Sie vor und nach dem Codeblock immer eine Leerzeile lassen:

In Bird-style you have to leave a blank before the code.

> fact :: Integer -> Integer
> fact 0 = 1
> fact (n+1) = (n+1) * fact n

And you have to leave a blank line after the code as well.

Literate Programmierung kann auch in Haskell mit LaTeX erfolgen . Die Codeumgebung kann anstelle des Stils von Richard Bird verwendet werden: Im LaTeX- Stil entspricht dies dem obigen Beispiel, die Codeumgebung könnte in der LaTeX-Präambel definiert werden. Hier ist eine einfache Definition:

\usepackage{verbatim}
\newenvironment{code}{\verbatim}{\endverbatim}

später im

% the LaTeX source file
The \verb|fact n| function call computes $n!$ if $n\ge 0$, here is a definition:\\
\begin{code}
fact :: Integer -> Integer
fact 0 = 1
fact (n+1) = (n+1) * fact n
\end{code}
Here more explanation using \LaTeX{} markup

Java

Dieses Java -Codefragment zeigt einen Blockkommentar zur Beschreibung der setToolTipTextMethode. Die Formatierung entspricht den Javadoc- Standards von Sun Microsystems . Der Kommentar soll vom Javadoc-Prozessor gelesen werden.

/**
 * This is a block comment in Java.
 * The setToolTipText method registers the text to display in a tool tip.
 * The text is displayed when the cursor lingers over the component.
 *
 * @param text  The string to be displayed.  If 'text' is null,
 *              the tool tip is turned off for this component.
 */
public void setToolTipText(String text) {
    // This is an inline comment in Java. TODO: Write code for this method.
}

JavaScript

JavaScript verwendet // um Kommentaren voranzustellen und /* */ für mehrzeilige Kommentare.

// A single line JavaScript comment
var iNum = 100;
var iTwo = 2; // A comment at the end of line
/*
multi-line
JavaScript comment
*/

Lua

Die Programmiersprache Lua verwendet doppelte Bindestriche, --für einzeilige Kommentare, ähnlich wie die Sprachen Ada , Eiffel , Haskell , SQL und VHDL . Lua hat auch Blockkommentare, die mit beginnen --[[und bis zum Schluss laufen]]

Zum Beispiel:

--[[A multi-line
long comment
]]
print(20)   -- print the result

Eine gängige Technik zum Auskommentieren eines Codeabschnitts besteht darin, den Code wie folgt zwischen --[[und einzuschließen --]]:

--[[
print(10)
--]]
-- no action (commented out)

In diesem Fall ist es möglich, den Code zu reaktivieren, indem Sie einen einzelnen Bindestrich in die erste Zeile einfügen:

---[[
print(10)
--]]
--> 10

Im ersten Beispiel --[[beginnt der in der ersten Zeile einen langen Kommentar, und die beiden Bindestriche in der letzten Zeile befinden sich noch innerhalb dieses Kommentars. Im zweiten Beispiel ---[[beginnt die Sequenz mit einem gewöhnlichen, einzeiligen Kommentar, sodass die erste und die letzte Zeile zu unabhängigen Kommentaren werden. In diesem Fall printhandelt es sich um externe Kommentare. In diesem Fall wird die letzte Zeile zu einem eigenständigen Kommentar, da sie mit beginnt --.

Lange Kommentare in Lua können komplexer sein, wie Sie im Abschnitt "Lange Strings" im Abschnitt Programmieren in Lua nachlesen können .

MATLAB

In der Programmiersprache von MATLAB weist das Zeichen '%' auf einen einzeiligen Kommentar hin. Mehrzeilige Kommentare sind auch über %{ und %} Klammern verfügbar und können verschachtelt werden, zB

% These are the derivatives for each term
d = [0 -1 0];

%{
  %{
    (Example of a nested comment, indentation is for cosmetics (and ignored).)
  %}
  We form the sequence, following the Taylor formula.
  Note that we're operating on a vector.
%}
seq = d .* (x - c).^n ./(factorial(n))

% We add-up to get the Taylor approximation
approx = sum(seq)

Nim

Nim verwendet das Zeichen '#' für Inline-Kommentare. Mehrzeilige Blockkommentare werden mit '#[' geöffnet und mit ']#' geschlossen. Mehrzeilige Blockkommentare können verschachtelt werden.

Nim hat auch Dokumentationskommentare, die gemischte Markdown- und ReStructuredText-Markups verwenden . Die Inline-Dokumentationskommentare verwenden '##' und mehrzeilige Blockdokumentationskommentare werden mit '##[' geöffnet und mit ']##' geschlossen. Der Compiler kann aus den Dokumentationskommentaren HTML- , LaTeX- und JSON- Dokumentationen generieren . Dokumentationskommentare sind Teil des abstrakten Syntaxbaums und können mit Makros extrahiert werden.

## Documentation of the module *ReSTructuredText* and **MarkDown**
# This is a comment, but it is not a documentation comment.

type Kitten = object  ## Documentation of type
  age: int  ## Documentation of field

proc purr(self: Kitten) =
  ## Documentation of function
  echo "Purr Purr"  # This is a comment, but it is not a documentation comment.

# This is a comment, but it is not a documentation comment.

OCaml

OCaml verwendet verschachtelbare Kommentare, was beim Kommentieren eines Codeblocks nützlich ist.

codeLine(* comment level 1(*comment level 2*)*)

Pascal

In der Pascal- Sprachfamilie von Niklaus Wirth (einschließlich Modula-2 und Oberon ) werden Kommentare mit '(*') eröffnet und mit '*)' abgeschlossen.

zum Beispiel:

(* test diagonals *)
columnDifference := testColumn - column;
if (row + columnDifference = testRow) or
    .......

In modernen Dialekten von Pascal werden stattdessen '{' und '}' verwendet.

Perl

Zeilenkommentare in Perl und vielen anderen Skriptsprachen beginnen mit einem Raute-Symbol (#).

# A simple example
# 
my $s = "Wikipedia"; # Sets the variable s to "Wikipedia".
print $s . "\n";     # Add a newline character after printing

Anstelle eines regulären Blockkommentarkonstrukts verwendet Perl Plain Old Documentation , eine Auszeichnungssprache für Literate-Programmierung , zum Beispiel:

=item Pod::List-E<gt>new()

Create a new list object. Properties may be specified through a hash
reference like this:

  my $list = Pod::List->new({ -start => $., -indent => 4 });

See the individual methods/properties for details.

=cut

sub new {
    my $this = shift;
    my $class = ref($this) || $this;
    my %params = @_;
    my $self = {%params};
    bless $self, $class;
    $self->initialize();
    return $self;
}

R

R unterstützt nur Inline-Kommentare, die mit dem Rautezeichen (#) beginnen.

# This is a comment
print("This is not a comment")  # This is another comment

Raku

Raku (früher Perl 6) verwendet die gleichen Zeilenkommentare und POD-Dokumentationskommentare wie normales Perl (siehe Perl-Abschnitt oben), fügt jedoch einen konfigurierbaren Blockkommentartyp hinzu: "mehrzeilige / eingebettete Kommentare".

Diese beginnen mit einem Rautenzeichen, gefolgt von einem Backtick und dann einem öffnenden Klammerzeichen und enden mit dem passenden schließenden Klammerzeichen. Der Inhalt kann sich nicht nur über mehrere Zeilen erstrecken, sondern auch inline eingebettet werden.

#`{{ "commenting out" this version 
toggle-case(Str:D $s)

Toggles the case of each character in a string:

  my Str $toggled-string = toggle-case("mY NAME IS mICHAEL!");

}}

sub toggle-case(Str:D $s) #`( this version of parens is used now ){
    ...
}

PHP

Kommentare in PHP können entweder im C++-Stil (sowohl Inline als auch Block) sein oder Hashes verwenden. PHPDoc ist ein von Javadoc adaptierter Stil und ein gängiger Standard für die Dokumentation von PHP-Code.

Power Shell

Kommentare in Windows PowerShell

# Single line comment
Write-Host "Hello, World!"

<# Multi
   Line
   Comment #>

Write-Host "Goodbye, world!"

Python

Inline-Kommentare in Python verwenden das Rautezeichen (#), wie in den beiden Beispielen in diesem Code:

# This program prints "Hello World" to the screen
print("Hello World!")  # Note the new syntax

Blockkommentare, wie in diesem Artikel definiert, sind in Python technisch nicht vorhanden. Ein reines Zeichenfolgenliteral, das durch eine Zeichenfolge in dreifachen Anführungszeichen dargestellt wird, kann verwendet werden, wird jedoch vom Interpreter nicht auf die gleiche Weise ignoriert wie der "#"-Kommentar. In den folgenden Beispielen fungieren die dreifachen doppelten Anführungszeichen auf diese Weise als Kommentare, werden aber auch als Docstrings behandelt :

"""
Assuming this is file mymodule.py, then this string, being the
first statement in the file, will become the "mymodule" module's
docstring when the file is imported.
"""

class MyClass:
    """The class's docstring"""

    def my_method(self):
        """The method's docstring"""

def my_function():
    """The function's docstring"""

Rubin

Kommentare in Ruby .

Einzeilige Kommentare: (Zeile beginnt mit Raute "#")

puts "This is not a comment"

# this is a comment

puts "This is not a comment"

Mehrzeilige Kommentare: (Kommentare stehen zwischen den Schlüsselwörtern "begin" und "end")

puts "This is not a comment"

=begin

whatever goes in these lines

is just for the human reader

=end

puts "This is not a comment"

SQL

Standardkommentare in SQL sind nur einzeilig und verwenden zwei Bindestriche:

-- This is a single line comment
-- followed by a second line
SELECT COUNT(*)
       FROM Authors
       WHERE Authors.name = 'Smith'; -- Note: we only want 'smith'
                                     -- this comment appears after SQL code

Alternativ wird eine Kommentarformatsyntax, die mit dem "Blockkommentar"-Stil identisch ist, der in der Syntax für C und Java verwendet wird, von Transact-SQL , MySQL , SQLite , PostgreSQL und Oracle unterstützt .

MySQL unterstützt auch Kommentare vom Rautenzeichen (#) bis zum Zeilenende.

Schnell

Einzeilige Kommentare beginnen mit zwei Schrägstrichen (//):

// This is a comment.

Mehrzeilige Kommentare beginnen mit einem Schrägstrich gefolgt von einem Sternchen (/*) und enden mit einem Sternchen gefolgt von einem Schrägstrich (*/):

/* This is also a comment
 but is written over multiple lines. */

Mehrzeilige Kommentare in Swift können in andere mehrzeilige Kommentare verschachtelt werden. Sie schreiben verschachtelte Kommentare, indem Sie einen mehrzeiligen Kommentarblock starten und dann einen zweiten mehrzeiligen Kommentar innerhalb des ersten Blocks beginnen. Der zweite Block wird dann geschlossen, gefolgt vom ersten Block:

/* This is the start of the first multiline comment.
 /* This is the second, nested multiline comment. */
 This is the end of the first multiline comment. */

XML (oder HTML)

Kommentare in XML (oder HTML) werden eingeführt mit

<!--

und kann sich über mehrere Zeilen bis zum Abschlusszeichen erstrecken,

-->

Zum Beispiel,

<!-- select the context here -->
<param name="context" value="public" />

Aus Kompatibilitätsgründen mit SGML ist die Zeichenfolge "--" (doppelter Bindestrich) in Kommentaren nicht zulässig.

Sicherheitsprobleme

In übersetzten Sprachen sind die Kommentare für den Endbenutzer des Programms sichtbar. In einigen Fällen, wie Codeabschnitte , die „ kommentierte out“ sind, kann dies eine Sicherheit präsentieren Verwundbarkeit .

Siehe auch

Hinweise und Referenzen

Weiterlesen

Externe Links