シンタックスハイライトされたHTML コード
シンタックスハイライト ・構文 こうぶん 強調 きょうちょう [1] [2] [3] [4] (英 えい : syntax highlighting ) とは、テキストエディタ の機能 きのう であり、テキスト中 ちゅう の一部分 いちぶぶん をその分類 ぶんるい ごとに異 こと なる色 いろ やフォント で表示 ひょうじ するものである。シンタックスカラーリング ・構文 こうぶん 着色 ちゃくしょく [5] (syntax coloring ) とも。
この機能 きのう により、プログラミング言語 げんご やマークアップ言語 げんご といった構造 こうぞう 化 か された言語 げんご において、その構造 こうぞう や構文 こうぶん 上 じょう のエラーが視覚 しかく 的 てき に区別 くべつ しやすくなるため、ソースコード の記述 きじゅつ が容易 ようい となる。エディタによってはシンタックスハイライトと、スペルチェック やコード畳 たた み込 こ みといった、その他 た の機能 きのう を統合 とうごう して提供 ていきょう するものもある。
JavaScript にて、watch='false に続 つづ く区切 くぎ り文字 もじ 「'」が1つ足 た りないと、強調 きょうちょう 表示 ひょうじ に及 およ ぼす影響 えいきょう を示 しめ す様子 ようす 。
シンタックスハイライトは、特 とく に複数 ふくすう ページにわたるようなコードについて、テキストの可読 かどく 性 せい を向上 こうじょう させ、文脈 ぶんみゃく をより明瞭 めいりょう にする手法 しゅほう の1つである。読 よ み手 て は関心 かんしん のないコードやコメント を、それが長 なが いものであっても、楽 らく に無視 むし して読 よ むことができる。
また、プログラマがプログラム中 ちゅう の誤 あやま りをさがす助 たす けともなる。例 たと えば、ほとんどのエディタは文字 もじ 列 れつ のリテラル を地 ち のコードとは異 こと なった色 いろ でハイライトする。文字 もじ 色 しょく の対比 たいひ から、文字 もじ 列 れつ リテラルの区切 くぎ り記号 きごう の抜 ぬ けをより簡単 かんたん に見 み つけることができる。また、多 おお くのテキストエディタには括弧 かっこ の対応 たいおう をチェックする機能 きのう もある。カーソル 位置 いち の括弧 かっこ のペアを特別 とくべつ な色 いろ で表示 ひょうじ することで、正 まさ しく対応 たいおう しているかの確認 かくにん が容易 ようい となる。
エディタによっては、配色 はいしょく の情報 じょうほう を印刷 いんさつ や他 た のテキスト処理 しょり ソフトウェアとの交換 こうかん に適 てき した形式 けいしき でエクスポートできるものもある。エクスポート用 よう のファイル形式 けいしき としてはHTMLや色 いろ 付 つ きのLaTeX 、PostScript 、RTF などが使 つか われる。
シンタックスハイライトが短 みじか いプログラムの理解 りかい に及 およ ぼす影響 えいきょう を評価 ひょうか したプログラム心理 しんり 学 がく (PPIG )会議 かいぎ では、その存在 そんざい によりプログラマがプログラムの構造 こうぞう を内在 ないざい 化 か するのにかかる時間 じかん が有意 ゆうい に減少 げんしょう したという研究 けんきゅう が報告 ほうこく された[6] 。さらに調査 ちょうさ 中 ちゅう に視線 しせん 追跡 ついせき 装置 そうち を使 つか って集 あつ めたデータを見 み ると、プログラマはシンタックスの強調 きょうちょう 表示 ひょうじ により、キーワードなど標準 ひょうじゅん 的 てき な構文 こうぶん 要素 ようそ に気 き を取 と られなくなったと示唆 しさ している。
しかし、シンタックスハイライトには
流 なが し読 よ みがしやすくなるので、プログラマはコード全体 ぜんたい を理解 りかい しようとはしなくなる
タイポグラフィ 上 うえ の理由 りゆう から、コードをハイライトすると、していないコードよりも実際 じっさい には判読 はんどく 性 せい が劣 おと ってしまう
という指摘 してき もある[7] 。
以下 いか はC++ のコードをシンタックスハイライトしたものである。
// Allocate all the windows
for ( 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と呼 よ ばれる)がオックスフォード英語 えいご 辞典 じてん の電子 でんし 化 か のために開発 かいはつ された。これが色 いろ 付 つ きのシンタックスハイライトを利用 りよう したおそらく最初 さいしょ のエディタであろう。その Live parsing 機能 きのう はユーザーが文章 ぶんしょう やプログラム、データファイル用 よう にパーサ を追加 ついか することができた[8] 。
ほとんどのエディタは、言語 げんご ごとにパーサを実装 じっそう するといった複雑 ふくざつ で面倒 めんどう な方法 ほうほう はとらず、パターンマッチング によるヒューリスティクス に基 もと づいてシンタックスハイライトを行 おこな うので、その結果 けっか は完全 かんぜん に正確 せいかく というわけにはいかない。さらに、パターンマッチングアルゴリズムによっては、ある種 しゅ の構文 こうぶん のハイライト処理 しょり が非常 ひじょう に遅 おそ いものとなってしまう。常 つね にファイル全体 ぜんたい を解析 かいせき するのではなく、表示 ひょうじ する部分 ぶぶん のみを解析 かいせき することでこの問題 もんだい を解決 かいけつ するエディタもある。
^ “入力 にゅうりょく 時 じ の構文 こうぶん チェック - MATLAB & Simulink - MathWorks 日本 にっぽん ”. MathWorks, Inc.. 2018年 ねん 8月 がつ 24日 にち 閲覧 えつらん 。
^ “EmEditor 使 つか い方 かた : 新 あたら しい構文 こうぶん ファイルを作成 さくせい するには ”. Emurasoft, Inc.. 2018年 ねん 8月 がつ 24日 にち 閲覧 えつらん 。
^ “IBM Knowledge Center - COBOL、JCL、PL/I、アセンブラー、および C++ ファイルの編集 へんしゅう ”. IBM Corporation. 2018年 ねん 8月 がつ 24日 にち 閲覧 えつらん 。
^ Nobuhide Tsuda. “世界 せかい 最速 さいそく 「さくさくエディタ」 ”. 2018年 ねん 8月 がつ 24日 にち 閲覧 えつらん 。
^ “Sun[tm ONE Studio 4 update 1, Mobile Edition リリースノート]”. 2019年 ねん 8月 がつ 29日 にち 閲覧 えつらん 。
^ Sarkar, Advait (2015). “シンタックスに色付 いろづ けするとプログラム理解 りかい にどう影響 えいきょう するか [The impact of syntax colouring on program comprehension ”] (英語 えいご ). 課題 かだい グループ議事 ぎじ 録 ろく (第 だい 26回 かい プログラム心理 しんり 学 がく 会議 かいぎ ) [Proceedings of the 26th Annual Conference of the Psychology of Programming Interest Group] : 49-58. http://www.ppig.org/library/paper/impact-syntax-colouring-program-comprehension 2015年 ねん 9月 がつ 5日 にち 閲覧 えつらん 。 .
^ Linus Åkesson (2007年 ねん 8月 がつ 26日 にち ). “シンタックス強調 きょうちょう 表示 ひょうじ の不利 ふり な事例 じれい [A case against syntax highlighting ]” (英語 えいご ). 2007年 ねん 8月 がつ 28日 にち 閲覧 えつらん 。
^ LEXX – A programmable structured editor , Cowlishaw, M. F., IBM Journal of Research and Development , Vol 31, No. 1, 1987, IBM Reprint order number G322-0151