「コメント (コンピュータ)」の版間の差分

削除された内容 追加された内容
WikitanvirBot (会話 | 投稿記録)
m r2.7.1) (ロボットによる 追加: mhr:Ойпелештыш
除去および編集。除去理由はノートに記載。
1行目:
[[ファイル:CodeCmmt002.svg|thumb|[[Java]] のソースコードを[[シンタックスハイライト]]した例。{{Color|red|赤}}と{{Color|green|緑}}で示されているのが'''コメント'''である。]]
 
'''コメント''' ({{lang-en-short|comment}}) とは、[[コンピュータ言語]]([[プログラミング言語]]や[[データ記述言語]])によって書かれた[[ソースコード]]のうち、人間のために覚えとして挿入された[[注釈]]のことである。この部分は[[コンピュータ]]が処理を行うときにはないものとして無視されるため、自由に文を挿入することができる。
 
== 用途 ==
=== プログラムの意図の明示 ===
どのような言語を用いてソースコードを書いたとしても、別の人が読んだり、同じ人であっても時間をおいてから読んだりした場合には、ソースコードからその意図を読みとること困難な場合がある。その為に、ソースコードの意図をコメントとしてソースコードに挿入することが役立つ
 
=== コメントアウト ===
また、一時的にコンピュータに処理させたくない部分を削除するかわりにコメントとすることもしばしば行われる。これをコメントアウトという。このとき、コメントアウトさせたい部分中にコメントが記述されている場合もあるため、構文的にコメントの[[ネスティング|入れ子]]が可能かどうかは大きな意味を持つ。なお、対義語、すなわちコメントを解除し処理を有効にすることはアンコメント (uncomment) などと呼ぶ。
 
=== バージョンの相違への対応 ===
特殊な用途としては、ある言語を拡張したときに、古いバージョンではその部分を解釈させたくないとき、古いバージョンではその部分がコメントとして見えアウトすように書くことがある。[[HyperText Markup Language|HTML]]の中に[[JavaScript]]を組み込む場合などがそれである。
 
== 種類 ==
コメントは、ある記号から行末までをコメントとして扱う'''行コメント'''と、2つの記号で前後を括りその内部をコメントとして扱う'''ブロックコメント'''に大別される。行コメントは、言語により行のどこからでもコメントを開始できるものと、行頭にのみコメント開始記号を記述できるものがある。いずれにしても行コメントは行の途中でコメントを終了することができない、コメントが数行に渡る場合にも行ごとにコメントの開始を指示しなければならないといったデメリットがある<ref>[[エディタ]]や[[統合開発環境]]の中には纏めてコメント化できるものもある。</ref>かわり、コメントの終了を指示しなくてもよいというメリットがある。
 
=== 行コメント ===
代表的な行コメントには以下のようなものがある。
 
* [[C++]]や[[Java]]では、'''<code>//</code>''' 以降がコメントと見なされる。
* [[BASIC]]では、'''<code>REM</code>'''、あるいは '''<code>'</code>''' (アポストロフィ)より後がコメントと見なされる。ただし、'''<code>REM</code>''' は命令のひとつであるから、これを用いて行の途中からコメントとする場合には、その前に '''<code>:</code>''' を置いてマルチステートメント(1行に複数の命令を書くこと)の形にしなければならない。一方、'''<code>'</code>''' は '''<code>:REM</code>''' の省略形と見なされるため、その前に '''<code>:</code>''' を置く必要はない。
* 各種[[シェルスクリプト]]やそれらの概念を継承している[[Perl]]や[[Python]]では、'''<code>#</code>''' 以降がコメントと見なされる。また、[[ファイル (コンピュータ)|ファイル]]の先頭にある '''<code>#!</code>''' から開始するコメントは、慣例的にそのスクリプトを実行するプログラムを指定するものとして扱われる。
* [[Ada]]や [[SQL]]では、'''<code>--</code>''' 以降がコメントと見なされる。
* [[Common Lisp]]や[[Scheme]]では'''<code>;</code>'''以降がコメントと見なされる。
* [[MS-DOS]]のバッチファイルでは、'''<code>REM</code>'''、あるいは '''<code>::</code>'''、'''<code>: </code>''' (コロン2つ、コロン+半角スペース)で始まる行がコメントと見なされる。コロンで始まる行は本来[[ラベル (プログラミング)|ラベル]]の宣言を行うものだが、解説書ではしばしばコメントと見なされる例として取り上げられる。
30行目:
 
* [[HyperText Markup Language|HTML]]、[[ウィキ|Wiki]]では、原則として、'''<code>&lt;!--</code>'''と'''<code>--&gt;</code>'''で括る。また、HTMLではバージョンによって <code><comment></code> と <code></comment></code> で括ることもできる。タグ('''<code>&lt;</code>''' と '''<code>&gt;</code>'''で括られた部分)の内部でコメントを作るには、'''<code>--</code>''' と '''<code>--</code>'''で括るがHTML 4.0以前のバージョンでなければならない。
* [[C言語|C]]、[[C++]]、[[Java]]、[[JavaScript]]、[[Cascading Style Sheets|CSS]]では、'''<code>/*</code>''' と '''<code>*/</code>''' で括る。また、Javaでは '''<code>/**</code>''' と '''<code>*/</code>''' で括られたコメントをドキュメントとして扱う。これは、[[Javadoc]]というツールを用いてこのコメントのみを抽出し、ドキュメントを生成する仕組みに使用されている。
* [[Pascal]] では、'''<code>{</code>''' と '''<code>}</code>''' で括る。なお、<code>{</code> や <code>}</code>が[[文字コード]]として定義されていない(主に初期の)コンピュータの為に、'''<code>(*</code>''' と '''<code>*)</code>'''で括る代替記法もある。
* [[Perl]](version 5 以降)の[[正規表現]]では '''<code>(?#</code>''' と '''<code>)</code>''' で括る。
41行目:
これらコメントは[[ソースコード|プログラムソース]]の保守管理に欠かせないものであり、特にプログラム内にドキュメントを含ませることで、チームを組んで保守したり、または担当者が変わった後でも保守・改良、または[[バグ]]修正に大きな力を発揮する。
 
{{要出典範囲|[[オープンソース]]分野でも、簡潔に要点を述べるコメントはプログラムを参考にしやすいとして歓迎される一方、ただ冗長なだけのコメント「記憶領域を無駄に浪費するだけで、」「読みづらくなると苦言などの短所呈する者も見む可能性もあ|date=2009年12月}}
ただ、稀にこのコメントに[[落書き]]をする[[プログラマー]]も見られ、実用に供されるプログラムにあっても、本来のプログラム動作には関係の無いコメントを残す者も見られる。[[コンピュータウイルス]]のMyDoomやBagleとNetSkyの系列に於いて、そのソース内のコメントで罵り合った事例が知られている。
* [http://japan.cnet.com/news/media/story/0,2000047715,20064667,00.htm CNET記事:作者同士がウイルスコードで「罵り合い」]
 
{{要出典範囲|[[オープンソース]]分野でも、簡潔に要点を述べるコメントはプログラムを参考にしやすいとして歓迎される一方、ただ冗長なだけのコメントに「記憶領域を無駄に浪費するだけで、読みづらい」と苦言を呈する者も見られる|date=2009年12月}}。
 
== 関連項目 ==
* [[プログラミング用語一覧]]
 
== 脚注 ==
<references />
 
{{DEFAULTSORT:こめんと}}