令和3年度 III-1

科目: 専門科目 / 分野: 情報工学部門 / 年度: 令和3年度

III-1 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

コンパイラに関する記述のうち最も適切なものを選ぶ問題。コンパイラの処理手順、意味エラーと構文エラーの違い、のぞき穴最適化、JITコンパイラ、共通部分式の削除などの理解を問う。

解説

この問題で問われていること

コンパイラの処理段階と、代表的な最適化・実行方式の説明を正しく区別する問題。

解き方

① コンパイラの基本: 順序は字句解析→構文解析→…。型の誤りは意味上の誤り。のぞき穴最適化=生成した命令列の局所を見る。JIT=実行時にバイトコードを機械語へ。共通部分式の削除=同じ式を1回だけ計算
② ①字句と構文が逆、②構文ではなく意味、③ソースではなく命令列、④ソースではなくバイトコード
③ ⑤

正解が正しい理由

共通部分式の削除は、同じ式が2回以上現れ、その間に式の値が変化しない場合に、計算を1回だけ行い結果を再利用するようコード生成を行う最適化である。したがって⑤が最も適切である。

各選択肢について

覚えるべきポイント

コンパイラの流れは、字句解析→構文解析→意味解析→中間語→最適化→コード生成。のぞき穴最適化は生成後の命令列の局所最適化、JITは実行時にバイトコードを機械語へ変換する。

キーワード: コンパイラ、共通部分式の削除、のぞき穴最適化、JITコンパイラ、字句解析、構文解析、情報工学部門

出題履歴

同じ問題が計3回出題されています(平成29年度、令和3年度、令和5年度)。