コンテンツにスキップ

ディレクティブ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

プログラミングにおけるディレクティブ: directive指示指令・等)は、手続き型プログラムの構成要素の一つを指す用語であり、〔手続き型プログラムの〕制御部にあって、その性質によって手続き部の起動・終了を従わせる[1]、とJISにはあるが、これは従来の言語のそれを説明したもので、手続き型言語ではないHaskellの処理系Glasgow Haskell Compilerにも、全く同様なpragmaというものがある[2]

アセンブリ言語

[編集]

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

例えば多くのアセンブラでは、ALIGNディレクティブで、コード内の現在の位置をワード境界に揃えるため必要なバイトを挿入する[5][6][7]

COBOL

[編集]

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

C言語

[編集]

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

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

C♯

[編集]

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

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

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

他の高水準言語での用法

[編集]

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

脚註

[編集]

註釈

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

出典

[編集]

参考文献

[編集]
  • 筧 捷彦「Ada: 米国国防総省新言語」『情報処理』第21巻第9号、情報処理学会、1980年9月15日、NAID 1100027538202022年10月10日閲覧 
  • 筧 捷彦「プログラミング言語の最新の動向: 13. ADA」『情報処理』第22巻第6号、情報処理学会、1981年6月15日、2022年10月10日閲覧 
  • Assembler Directives”. Free Software Foundation, Inc.. 2020年6月4日閲覧。
  • IBM Enterprise COBOL for z/OS V6.2 資料”. IBM Enterprise COBOL for z/OS V6.2 資料. IBM. 2020年6月4日閲覧。
  • ARM Software Development Toolkit Reference Guide”. ARM Information Center. ARM (1997年). 2020年6月4日閲覧。
  • using ディレクティブ (C# リファレンス)”. using ディレクティブ - C# リファレンス. Microsoft (2015年7月20日). 2020年6月4日閲覧。
規格
資料

関連項目

[編集]