フラグ 【flag】
概要
フラグ(flag)とは、「旗」という意味の英単語で、ITの分野では、コンピュータプログラムが条件判定などの命令を実行する際に結果を保存しておく領域などのことをこのように呼ぶ。一般の外来語としては「フラッグ」と表記するが、コンピュータ用語としては「フラグ」と詰めて表記・発音する慣習が定着している。プログラミングの分野でフラグという場合は、何らかの処理を実行した際に、結果を表す短いデータを格納しておく領域を指す。変数やメモリ上の特定の番地、CPU内部のレジスタ(の特定のビット)などが使われる。機械語のプログラムなどがフラグ用に用いる専用のレジスタが用意されていることがあり、「フラグレジスタ」という。
フラグは一般的に1ビットの真偽値(ブール値)や二進数の数値で表現され、処理を実行した結果、条件が満たされた場合には「true」(真)や「1」、満たされない場合には「false」(偽)や「0」などの値を取る。条件が満たされてフラグが真になることを「フラグが立つ」という。多値で複雑な条件を表現できるようにしている場合もある。
処理結果をフラグに格納することで、後続の命令が結果を知ることができ、その後の処理に反映させることができる。条件判定を行う命令と実行の流れを分岐させる命令を別々に記述しなければならないアセンブリ言語および機械語(マシン語)のプログラムで多様される。
高水準プログラミング言語の場合、単純な条件分岐などではフラグは実行コード中で内部的に用いられるだけで開発者が意識することはないが、何らかの状態の変化と、変化を反映した処理の間がプログラム中で遠く離れているような場合などにはフラグによる状態変化の伝達が用いられることがある。
ゲームや物語のフラグ
フラグ自体は様々なプログラムで汎用的に用いられる手法だが、ビデオゲームのプログラムではシナリオの分岐条件やステージのクリア条件などの記録のために用いられるため、これらの内部的な判定条件やその現在の状態のことを指してフラグというようになった。
例えば、アクションゲームでステージクリアのために必要なアイテムを取得したときに、「クリアフラグが立った」と表現することがある。
この意味から派生して、俗に、小説や映画、マンガ、アニメなどのストーリーで、お決まりのパターン通りの展開を予期させる「前振り」となる事象をフラグということがある。
例えば、兵士のキャラクターが「俺、この戦争が終わったら田舎に帰って彼女と結婚するんだ」と発言すると、その後の戦いのシーンで悲運にも死を遂げることが多い。このような、読者・視聴者にその後の展開を予期させるような紋切り型のセリフや表現などをフラグ(この例では「死亡フラグ」)という。