
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
プログラムをある言語から他の言語へ変換するプロセス(コンパイル)の流れ(ソースファイル→A→トークン→B→構文木→C→オブジェクトプログラム)で、A、B、Cに入る語句の組合せを選ぶ問題。
コンパイラの処理の流れを、トークンや構文木の受渡しから決める問題。
① コンパイルの流れ: ソース→字句解析(トークンに分ける)→構文解析(構文木を作る)→コード生成(目的プログラム)
② トークンを出すA=字句解析器で①④。構文木を出すB=構文解析器で④
③ ④
コンパイラの処理は、まず字句解析器が、ソースファイルの文字列を、意味のある最小単位(トークン)に分割する。次に構文解析器が、トークンの並びを文法に従って解析し、構文木を作る。最後に、コード生成器が、構文木から、目的コード(オブジェクトプログラム)を生成する。したがってA=字句解析器、B=構文解析器、C=コード生成器の④が正しい。
コンパイルの流れ: ソース→字句解析(トークン列)→構文解析(構文木)→意味解析→中間コード生成→最適化→コード生成(目的プログラム)。
キーワード: コンパイラ、字句解析、構文解析、コード生成、トークン、構文木、情報工学部門