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