忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【開発技術】単語を並べて構造を作る!「構文解析」|情報処理問題1000本ノック

切り分けられた単語(トークン)が、プログラミング言語のルール(文法)に則っているかをチェックし、プログラムの構造を解析する重要な工程を攻略しましょう。

1. 問題:プログラムの構造解析

【 問題 】 コンパイラの処理において、字句解析によって分割されたトークンの並びが、その言語の文法規則に適合しているかを判定し、「構文木(抽象構文木)」と呼ばれるツリー構造を生成する工程を何と呼ぶでしょうか?

ア、字句解析   イ、構文解析   ウ、意味解析   エ、最適化

2. 正解:言語処理プロセスに関する正解

正解: イ、構文解析(こうぶんかいせき)

※英語では「Syntax Analysis」や「Parsing(パース)」と呼びます。

3. 解説:文法チェックと「木」の構築

字句解析が「単語の切り出し」だったのに対し、構文解析は「文章の組み立て」を担当します。

【図解:構文解析の役割】

■ 処理内容
・トークンの並びが正しいか(例:カッコが閉じているか、演算子の位置は正しいか)を確認します。
・プログラムの論理的な階層構造を「構文木」として表現します。

■ 構文木のイメージ (a + b * c)
   +
  / \
 a   *
    / \
   b   c
(掛け算を先に計算するような木構造になります)
[ 関連用語:バッカス・ナウア記法 (BNF) ]
★ 構文解析の基準となる「文法の定義」を記述するための記法です。情報処理試験では、このBNF記法に基づいて正誤を判定させる問題もセットでよく登場します。

1. 理解のコツ: 英語の授業で行う「S(主語) V(動詞) O(目的語)」の判別と同じです。「単語は合っているか?」を見るのが字句解析、「文法(並び順)は合っているか?」を見るのが構文解析です。ここでミスが見つかると「Syntax Error(構文エラー)」が発生します。
2. 試験対策の視点: 「トークンから構文木を作る」「文法規則に適合するか」というフレーズがあれば構文解析です。また、次のステップである「意味解析(型チェックなど)」との境界線を意識しておきましょう。


4. まとめ

「トークンから構文木を作る」。これが構文解析です。バラバラだった単語に構造を与え、コンピュータが計算できる「論理の形」へと整える、コンパイラの知能とも言える工程です。



PR