コメント (コンピュータ)
コメント (テンプレート:Lang-en-short) とは、コンピュータ言語(プログラミング言語やデータ記述言語)によって書かれたソースコードのうち、人間のために覚えとして挿入された注釈のことである。この部分はコンピュータが処理を行うときにはないものとして無視されるため、自由に文を挿入することができる。
目次
用途
プログラムの意図の明示
どのような言語を用いてソースコードを書いたとしても、別の人が読んだり、同じ人であっても時間をおいてから読んだりした場合には、ソースコードからその意図を読みとることが困難な場合がある。その為に、ソースコードの意図をコメントとしてソースコードに挿入することが役立つ。
コメントアウト
また、一時的にコンピュータに処理させたくない部分を削除するかわりにコメントとすることもしばしば行われる。これをコメントアウトという。このとき、コメントアウトさせたい部分中にコメントが記述されている場合もあるため、構文的にコメントの入れ子が可能かどうかは大きな意味を持つ。なお、対義語、すなわちコメントを解除し処理を有効にすることはアンコメント (uncomment) などと呼ぶ。
バージョンの相違への対応
特殊な用途としては、ある言語を拡張した際、古いバージョンではその部分を解釈させたくない時にコメントアウトすることがある。HTMLの中にJavaScriptを組み込む場合、Internet Explorerの独自拡張である条件付きコメントなどがそれである。
種類
コメントは、ある記号から行末までをコメントとして扱う行コメントと、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では、
(*
と*)
で括る。
コメントに類似のもの
また、コンピューター言語以外のものを扱うアプリケーションソフトでも、コメント同様の機能が利用できる場合がある。ワードプロセッサソフトや表計算ソフトにおける「コメント」、「付箋」などの機能がそれである。
備考
これらコメントはプログラムソースの保守管理に欠かせないものであり、特にプログラム内にドキュメントを含ませることで、チームを組んで保守したり、または担当者が変わった後でも保守・改良、またはバグ修正に大きな力を発揮する。
オープンソース分野でも、簡潔に要点を述べるコメントはプログラムを参考にしやすいとして歓迎される一方、ただ冗長なだけのコメントは「記憶領域を無駄に浪費する」「読みづらくなる」などの短所をはらむ可能性もある。