令和4年度 III-12

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

III-12 問題画像

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

プログラムをある言語から他の言語へ変換するプロセス(コンパイル)の流れ(ソースファイル→A→トークン→B→構文木→C→オブジェクトプログラム)で、A、B、Cに入る語句の組合せを選ぶ問題。

解説

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

コンパイラの処理の流れを、トークンや構文木の受渡しから決める問題。

解き方

① コンパイルの流れ: ソース→字句解析(トークンに分ける)→構文解析(構文木を作る)→コード生成(目的プログラム)
② トークンを出すA=字句解析器で①④。構文木を出すB=構文解析器で④
③ ④

正解が正しい理由

コンパイラの処理は、まず字句解析器が、ソースファイルの文字列を、意味のある最小単位(トークン)に分割する。次に構文解析器が、トークンの並びを文法に従って解析し、構文木を作る。最後に、コード生成器が、構文木から、目的コード(オブジェクトプログラム)を生成する。したがってA=字句解析器、B=構文解析器、C=コード生成器の④が正しい。

各選択肢について

覚えるべきポイント

コンパイルの流れ: ソース→字句解析(トークン列)→構文解析(構文木)→意味解析→中間コード生成→最適化→コード生成(目的プログラム)。

キーワード: コンパイラ、字句解析、構文解析、コード生成、トークン、構文木、情報工学部門