Basic blockとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Basic blockの意味・解説 

基本ブロック

(Basic block から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/05/29 02:36 UTC 版)

基本ブロック(きほんブロック、: Basic block)は、コンピュータにおいて、一つの入り口(すなわち、内部のコードが他のコードの分岐先になっていない)と一つの出口を持ち、内部に分岐を含まないコードを指す。基本ブロックの開始点には、他のコードからジャンプすることができる。基本ブロックの終了点は、他のコードへのジャンプ命令(あるいは、ジャンプの一つ前の命令)である。

基本ブロックは通例コンパイラ最適化を行う最小単位であり、制御フローグラフにおけるノードや頂点である。

基本ブロックにおけるコードとは、ソースコードでもアセンブリ言語でも、またその他の命令列であっても良い。

定義

正式な定義では、各位置におけるコードがグラフ理論支配するか、あるいはその命令より後に置かれたコードより先に実行され、命令列の二つの命令の間には別の命令が実行されることがない場合、命令列は基本ブロックを形成する。この定義は慣れ親しんだものとは異なり、たとえば他のジャンプから参照されないラベルへの無条件のジャンプが許容される。この定義ではアルゴリズムを構築する際にも基本ブロックの考え方を用いることができる。

あるブロックの終端に到達した後、次に制御を移すブロックは「後任者(successor)」と呼ばれ、制御を渡してきたブロックは「前任者(predecessor)」と呼ばれる。

生成アルゴリズム

コードのリストから基本ブロックを生成するアルゴリズムは単純である。コードをスキャンし、ブロックの開始や終端となる命令すなわち「ブロックの境界」をマークする。マークした境界ごとにリストを切り分ければ、基本ブロックができる。この方法は、公式な定義では「最長」の制御ブロックを生成するとは限らないが、通常十分(最長の基本ブロックとは、隣接の基本ブロックを、定義を侵すことなく取り込むことができないものを指す[1])である。

基本ブロックを終了させる命令には以下のものがある:

  • 無条件、あるいは条件分岐命令、直接分岐も間接分岐も含む
  • 呼び出し元の手続きへのreturn
  • 例外処理を発生させうる命令
  • 復帰しない関数は基本ブロックの終端になる。たとえば、例外や特別な呼び出しを発生するC言語longjmpexit 関数などがある

基本ブロックを開始させる命令には以下のものがある:

  • 手続きや関数のエントリーポイント
  • ジャンプや分岐の対象
  • 条件分岐命令の後の、分岐しなかった場合のコード
  • 例外を発生させる命令の後のコード
  • 例外ハンドラ

制御が基本ブロックの最後を通過することはないため、ブロックの境界は、基本ブロックを見つけた後に修正しなければならない場合もある。特に、分岐しなかった場合のコードは二方向の分岐に変換し、例外を発生させる関数呼び出しには無条件分岐を付き足なければならない。このため他のブロックの先頭にラベルをつける必要が生じる場合もある。

関連項目

参考文献

  1. ^ Modern Compiler Design by Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs, and Koen G. Langendoen p320

外部リンク


「Basic block」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


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

辞書ショートカット

すべての辞書の索引

「Basic block」の関連用語

Basic blockのお隣キーワード
検索ランキング

   

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



Basic blockのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの基本ブロック (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS