• 締切済み

行コメントが無い理由

HTMLの文法に行コメントが無い理由を教えてください。

みんなの回答

回答No.5

今となっては誰にもわからないと思います。 「日本では自動車は左側走行ですが、なぜ左側なのですか?」 -> そういうルールだから。 -> なぜそう言うルールにしたんですか?右側にするというルールではダメだったんですか? -> 知らんがな(´・ω・`) 文法を解析すれば、「まず最初に(HTMLタグを解析する前に)改行コードはスペースとして扱う」というルールがあるので、改行コードを利用した解析は出来なくなります。 ->「なぜ改行コードを先に解析するんですか?タグを解析した後じゃダメなんですか?」 知らんがな(´・ω・`) パーサー(解析ツール)をつくるのが複雑になって、面倒だからじゃね?

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

HTMLは、SGMLが参考にされたというかその一様式として作成されました。SGMLでは、すべての要素内の空白を置ける場所にコメントを入れられますが、そのときはCOMENT、すなわち--で区切ってコメントを挿入します。HTML2.0では、<! から > までがコメントとして定義されました。  HTMLやSGML,XMLは、マークアップ言語であってプログラミング言語ではありませんから、コメントもひとつの要素とみなせます。  たとえば、 <!--  <div class="test">   <p></p>  </div> -->  というコメント要素になります。(HTML的にはこれは正しい。AntherHTMLlintではチェックされるけど)  HTMLは、文書をマークアップするものですから、<pre>要素以外では、複数の空白文字はひとつに縮めて処理します。 <img src="[URL]"    alt="なんたらかんたら"    width="320" height="240"    class="test"> は、<img src="[URL]" alt="なんたらかんたら" width="320" height="240" class="test"> と同じと処理されます。  これはコメント要素を含め、複数に書き表しても良いということですから、その要素の終了を示す>が必須となります。  >が必須でしたら <!--コメント  はだめと言うことと同義ですね。  言い換えれば、改行、桁送りを含めてすべてが一行として処理される系においては、行コメントはありえないのです。 <htm><head></head><body><h1></h1><p></p></body>として処理を始めるマークアップ言語などにおいては、一行コメントは極めて不自由で不便なものになります。  マークアップ言語だけでなくスタイルシートも一行コメントはありません。プログラム言語も不明確で不自由な一行コメントのないものもたくさんあります。  一行コメントは便利だとは思いません。 # これはコメントです。  関数$varを読み出して  $ENV{'PATH'}と比較して  同じなら次へすすむ。# とかけないなんて・・・・・

wsp
質問者

補足

>行コメントはありえない 行コメントは開始記号から改行までを排除すればいいのだから、空白文字の処理(1つに縮める)をする前に行コメントの処理(排除)をすれば実装できそうですが。 マークアップ言語としてはマーク以外(つまり改行文字)を利用した文法を認めたくないと言うことですかね。

回答No.3

HTMLには「行」の概念がないから。 改行やタブを入れるのは単に人間がテキストとして見たときに理解しやすくするためのものでしかないので。

wsp
質問者

補足

例えばjavascriptも行の概念がないけど行コメントはあります。 No.1から3まで、(個人的には)行コメントの利便性と引換にする理由としては弱い気がしますが。 もうちょっと絶対的な理由ではないのでしょうか?

回答No.2

テキスト ファイルでいうところの改行コード単位で処理するわけじゃなく、あくまでも HTML タグの単位で処理するからじゃないでしょうか? タグ単位で処理したいのだから、改行コードは完全無視したい。 だから改行コード単位で言うところの 「同一行」 で処理するようなコメント記述は邪魔。 そんなところでしょ。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

想像ですが、行という概念がないからでは?改行文字も単なる空白文字ですし。

関連するQ&A