テーブルジャンプとは? わかりやすく解説

テーブルジャンプ

(ジャンプ・テーブル から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/16 14:50 UTC 版)

ナビゲーションに移動 検索に移動

テーブルジャンプは計算機プログラムの制御方式の一つである。テーブルジャンプに使用するテーブルをジャンプテーブルと呼ぶ。

ジャンプ命令を実行する際、ジャンプ先の番地(アドレス)を予め表の形でメモリに記憶させておき、それを参照してジャンプする方式。自己書き換えなどのテクニックと併用して使われる。複数の分岐先がある場合でも、短時間でジャンプが可能となる。

高級言語にもジャンプテーブルによる実装を考慮したものがあった。Pascalのcase文が変数に順序型のみを許容しているのが一例である。

Unix系オペレーティングシステムダイナミックリンクライブラリは、ロードされるアドレスが固定されていない。このため一種のテーブルジャンプでライブラリ内のサブルーチンにジャンプするようになっている。実行プログラムをロードした当初、そのジャンプテーブルは全てローダー (loader) にジャンプするように設定されている。ローダーはジャンプに使用されたテーブルのエントリに対応するライブラリルーチンにジャンプするのだが、その際にジャンプテーブル自身を書き換えて次回のコールからは直接ライブラリルーチンにジャンプするように変更する。

カーネルモードで実行されるデバイスドライバファイルシステムもテーブルジャンプを使用してカーネル本体とのインターフェイスを実装していることが多い。open()close()read()write()といったシステムコールの処理は最終的に個別のドライバやファイルシステムのコードを呼び出す。しかし、いずれも種類が豊富であるし、カーネルにリンクして構成されない場合もあるため、直接呼び出すことはできず、テーブルジャンプで呼び出すようになっている。例えば、Unix系では仮想ファイルシステムが個別のファイルシステムのサブルーチンを登録するジャンプテーブルを管理する。ただし、この種の実装では単なる配列にアドレスを登録するのではなく、ドライバやファイルシステムの管理データ構造にジャンプテーブルが格納されている。従って、これはオブジェクト指向でいうカプセル化ポリモーフィズムに近い。

関連項目





固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「テーブルジャンプ」の関連用語

テーブルジャンプのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



テーブルジャンプのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのテーブルジャンプ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS