コンパイラ
基本ブロックの説明として正しいものはどれか。
- A途中に分岐の出入りがなく、必ず続けて実行される命令の並び
- B1つの関数の中に含まれる、すべての命令を1つにまとめたもの
- Cループの本体を何回分か並べて書き、繰り返しの回数を減らしたもの
答えと解説を見る
正解:A. 途中に分岐の出入りがなく、必ず続けて実行される命令の並び
基本ブロックは、入口が先頭だけ、出口が末尾だけの命令の並びで、一度実行が始まれば途中で抜けることも、途中から入ってくることもありません。分岐の飛び先になる命令や分岐命令の直後で区切って作ります。ブロックの中では実行の順番が決まっているので、局所的な最適化がしやすく、ブロックを節にした制御フローグラフで全体の流れを表します。関数全体は普通いくつもの基本ブロックからなり、ループ本体を並べるのはループ展開です。
- A. 正しい。入口は先頭、出口は末尾だけの命令の並びです。
- B. 関数全体は普通いくつもの基本ブロックからなります。
- C. ループ本体を並べるのはループ展開です。