IT資格用語解説基本情報技術者試験・コンパイラ理論
意味解析
更新日:
用語解説
意味解析は、構文解析で得た構文木に対し、宣言、型、スコープ、引数、アクセス規則等を確認し、文法だけでは表せない意味上の整合性を検査する工程です。
■ 試験で押さえるポイント
識別子の宣言・参照を記号表で結び付け、変数の有効範囲、重複宣言、関数の引数数・型、代入可能性を確認します。
必要に応じ暗黙の型変換を挿入し、各構文木ノードへ型や参照先等の属性を付け、後続の中間コード生成へ渡します。
「整数+文字列」や未宣言変数はトークン列・構文として正しくても、言語規則に合わなければ意味エラーです。
プログラムが業務要求どおりか、停止するか、全実行時エラーがないかまで一般に証明する工程ではありません。
■ 選択肢での判断ポイント
構文木に対する型検査、宣言・スコープ確認、記号表利用が該当します。括弧対応の検査は構文解析です。
例: 「int n; n = "abc";」は文法上は代入文ですが、記号表でnが整数型と分かるため、文字列を代入できない意味エラーになります。