シンタックスハイライト
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

ウィキペディアや MediaWiki におけるソースコードのシンタックスハイライトについては、Syntax Highlight Extension をご覧ください。

Wikipediaでのタグ用テンプレートについては、Template:Syntaxhighlightをご覧ください。
シンタックスハイライトされたHTMLコード

シンタックスハイライト・構文強調[1][2][3][4] (: syntax highlighting) とは、テキストエディタの機能であり、テキスト中の一部分をその分類ごとに異なるフォントで表示するものである。シンタックスカラーリング・構文着色[5] (syntax coloring) とも。

この機能により、プログラミング言語マークアップ言語といった構造化された言語において、その構造や構文上のエラーが視覚的に区別しやすくなるため、ソースコードの記述が容易となる。エディタによってはシンタックスハイライトと、スペルチェックやコード畳み込みといった、その他の機能を統合して提供するものもある。
実用上の利点JavaScriptにて、watch='falseに続く区切り文字「'」が1つ足りないと、強調表示に及ぼす影響を示す様子。

シンタックスハイライトは、特に複数ページにわたるようなコードについて、テキストの可読性を向上させ、文脈をより明瞭にする手法の1つである。読み手は関心のないコードやコメントを、それが長いものであっても、楽に無視して読むことができる。

また、プログラマがプログラム中の誤りをさがす助けともなる。例えば、ほとんどのエディタは文字列リテラルを地のコードとは異なった色でハイライトする。文字色の対比から、文字列リテラルの区切り記号の抜けをより簡単に見つけることができる。また、多くのテキストエディタには括弧の対応をチェックする機能もある。カーソル位置の括弧のペアを特別な色で表示することで、正しく対応しているかの確認が容易となる。

エディタによっては、配色の情報を印刷や他のテキスト処理ソフトウェアとの交換に適した形式でエクスポートできるものもある。エクスポート用のファイル形式としてはHTMLや色付きのLaTeXPostScriptRTFなどが使われる。

シンタックスハイライトが短いプログラムの理解に及ぼす影響を評価したプログラム心理学(PPIG)会議では、その存在によりプログラマがプログラムの構造を内在化するのにかかる時間が有意に減少したという研究が報告された[6]。さらに調査中に視線追跡装置を使って集めたデータを見ると、プログラマはシンタックスの強調表示により、キーワードなど標準的な構文要素に気を取られなくなったと示唆している。

しかし、シンタックスハイライトには

流し読みがしやすくなるので、プログラマはコード全体を理解しようとはしなくなる

タイポグラフィ上の理由から、コードをハイライトすると、していないコードよりも実際には判読性が劣ってしまう

という指摘もある[7]
実例

以下はC++のコードをシンタックスハイライトしたものである。// Allocate all the windowsfor (int i = 0; i < max; i++){ wins[i] = new Window();}

この例では、ソフトウェアはキーワード(予約語)としてfor・int・new を、変数名としてi・wins・max を判別し、異なる色でハイライトしている。1行目のコメントもコード部分とは区別できるようにハイライトされている。
複数の言語への対応と限界

2つ以上の言語に対応するエディタでは、シンタックスハイライトを正しくおこなうために、ユーザーがテキストの言語を指定するか、エディタがファイルの拡張子や内容から言語を自動的に判別する必要がある。

複数の言語のシンタックスハイライトをサポートする方法として、言語ごとにシンタックスハイライトの規則を独立して保持する方式がある。この方式には複数の言語に対応したエディタの作成がある程度は簡単になるという利点があるが、潜在的な限界もある。

例えば、ユーザーによっては以下のような要求もありうる。

複数の言語を含むテキストを取り扱いたい。例えば JavaScript コードを埋め込んだHTMLファイルなど。

エディタが対応していない言語のテキストを取り扱いたい。例えば、マイナーな言語や擬似コードなど。

1985年に Live Parsing Editor(LEXXやLPEXと呼ばれる)がオックスフォード英語辞典の電子化のために開発された。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:11 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef