プログラミングにおける指示: directive,ディレクティブ)とは, 特に手続き型プログラムの構成要素の一つを指す用語であり, 〔手続き型プログラムの〕制御部にあって,その性質によって手続き部の起動・終了を従わせる[1]

アセンブリ言語編集

アセンブラ指示文: assembler directive[2]は,〔アセンブリ言語において〕環境に関する情報や領域(: section)の境界を提示してプログラムのアセンブルを制御する[3]

例えば多くのアセンブラでは,ALIGN指示文を認識して,はコード内の現在の位置をワード境界に揃えるため必要なバイトを挿入する[4][5][6]

COBOL編集

COBOLにおける翻訳指示: compiler directiveは, 文字列の置換や選択機能の指定,翻訳変数の定義・並びに条件付き翻訳などの制御を行う[7][8]

C言語編集

〔C言語における〕前処理指令は,C言語の翻訳の初期段階[注釈 1]で, 前処理機構によって処理される[9]

代表的なものとしては#define#include#error等がある[9]

C#編集

C#において,前処理指令は,その名に反して前処理機構によっては処理されず, 字句解析段階の一部として処理される[10][注釈 2]

規格の詳細に立ち入ることは避けるが, #define等の条件付き翻訳用記号が(C言語における前処理機構がするように) 字句解析段階で具体的な処理が施される一方で, #region等の制御指令によって定めた領域は翻訳段階において特別扱いされることなく, 専らプログラム作成者や関連する補助機構に対して効果がある[10]

using指令は,他の名前空間で定義されている名前空間及び型の利用が可能になり, 又using別名指令によって特定の翻訳単位又は名前空間本体内で別名を使用できる[10]

他の高級言語での用法編集

Adaでは,プラグマ: pragma)を用いて, 翻訳系に対して,手続き・函数を呼出しの場所に埋込み・展開して翻訳するよう指令できる[11][12]

脚註編集

[脚注の使い方]

註釈編集

  1. ^ 具体的には,多バイト文字を写像し,連続する逆斜線と改行を削除して, 前処理字句及び空白文字類の並びに分割した直後に, 前処理指令の実行と(前処理指定によって定義された)マクロの展開が行われる。
  2. ^ そもそも,C#において前処理という概念は存在しない。 前処理指令という語は,C及びC++言語等との一貫性を保つために用いられているだけである[10]

出典編集

参考文献編集

規格
資料

関連項目編集