修了試験 2017-12-10実施分 基本情報技術者試験 問19
コンパイラにおける処理を字句解析,構文解析,意味解析,最適化の四つのフェーズに分けたとき,意味解析のフェーズで行う処理はどれか。
正答3
解説
正解は3です。 コンパイラは、字句解析、構文解析、意味解析、最適化、コード生成の順に処理を進めます。 意味解析では、文法的には正しいプログラムについて、意味の上で矛盾がないかを調べます。 具体的には、変数が宣言されているか、演算の型が合っているかなどを確認します。 【選択肢別解説】 1:× 言語の文法に基づいてプログラムを解析し、文法誤りを調べるのは構文解析のフェーズです。 2:× 文字の列を、意味のある最小の構成要素(字句、トークン)の列に変換するのは字句解析のフェーズです。 3:○ 変数の宣言と使用の対応付けや、データ型の整合性のチェックは、意味の正しさを確かめる意味解析のフェーズで行います。 4:× レジスタ割付けや不要な演算の省略など、実行効率を上げるためのプログラム変換は最適化のフェーズです。 【ポイント】 処理の順番は「字句(単語に分ける)」「構文(文法を見る)」「意味(型や宣言を見る)」「最適化(速くする)」です。 小さな単位から大きな単位へ進むと覚えると整理しやすくなります。まとめて解く
修了試験 2017-12-10実施分を通しで解く(80問)→