プログラミングにおける指示(ディレクティブ)
プログラミングにおける
指示(ディレクティブ)とは、プログラムの制御やコンパイルプロセスに影響を与えるための特別な命令です。
手続き型プログラミングの制御構造の一部として、またはアセンブラ、コンパイラ、プリプロセッサへの命令として機能します。ディレクティブは、プログラムの動作を調整し、コードの可読性と保守性を向上させるために重要な役割を果たします。
手続き型プログラムにおける指示
手続き型プログラムでは、ディレクティブはプログラムの制御部に位置し、手続き部の起動や終了を制御します。これにより、プログラムの実行フローを柔軟に管理できます。
アセンブリ言語では、
アセンブラ指示文が、プログラムのアセンブルを制御します。これらは、環境に関する情報やメモリ領域の境界をアセンブラに伝えます。例えば、`ALIGN`指示文は、コード内の現在位置を特定の境界に揃えるために必要なバイトを挿入します。これにより、メモリ効率とプログラムの実行速度が向上します。
COBOLでは、
翻訳指示が、コンパイラの動作を制御します。文字列の置換、選択機能の指定、翻訳変数の定義、条件付き翻訳などの機能を提供します。これにより、プログラムの柔軟性が高まり、異なる環境への対応が容易になります。
C言語における指示
C言語では、
前処理指令が、コンパイルの初期段階で前処理機構によって処理されます。`#define`、`#include`、`#error`などのプリプロセッサディレクティブは、コンパイル前にコードの変換や条件付きコンパイルを可能にします。これにより、コードの再利用性や移植性が向上します。
C#における指示
C#では、
前処理指令は、その名前とは異なり、前処理機構ではなく字句解析段階で処理されます。`#define`などの条件付き翻訳用記号は、字句解析段階で処理され、`#region`などの制御指令は、コードの構造化に役立ちます。`using`ディレクティブは、他の名前空間で定義されている型を利用可能にし、`using`別名ディレクティブは、特定のスコープ内で型に別名を付与できます。これにより、コードの可読性と管理性が向上します。
他の高級言語での用法
Adaでは、
プラグマを用いて、翻訳系に対して、手続きや関数を呼び出し箇所に埋め込むように指示できます。これにより、パフォーマンスの向上が期待できます。
まとめ
ディレクティブは、プログラミング言語ごとに異なる形式と役割を持ちますが、プログラムの制御、コンパイルプロセス、コードの構造化、可読性、パフォーマンスの向上に重要な役割を果たします。ディレクティブを適切に利用することで、より効率的で信頼性の高いプログラムを開発できます。
参考資料
JIS X 0128:1988「プログラム構成要素及びその表記法」
JIS X 0007:2001「情報処理用語−プログラミング」
JIS X 3010:2003「プログラミング言語C」
JIS X 3002:2011「電子計算機プログラム言語
COBOL」
JIS X 3015:2008「プログラミング言語C#」
参考文献
筧 捷彦「
Ada: 米国国防総省新言語」『情報処理』第21巻第9号, 1980年
筧 捷彦「プログラミング言語の最新の動向: 13. ADA」『情報処理』第22巻第6号, 1981年
Free Software Foundation, Inc. “Assembler Directives”
IBM. “IBM Enterprise COBOL for z/OS V6.2 資料”
ARM. “ARM Software Development Toolkit Reference Guide”, 1997年
Microsoft. “using ディレクティブ (C# リファレンス)”, 2015年
Peter Johnson. “Yasm User Manual”, 2009年
NASM Authors. “NASM - The Netwide Assembler”, 2017年
関連項目
手続き型プログラミング