IPA過去問ドリル

平成30年度 秋期 応用情報技術者試験 午前 問4

テクノロジ/基礎理論

次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,適切なものはどれか。 <パラメタ指定> ::= <パラメタ>|(<パラメタ指定>,<パラメタ>) <パラメタ> ::= <英字>|<パラメタ><英字> <英字> ::= a|b|c|d|e|f|g|h|i

出典:平成30年度 秋期 応用情報技術者試験 午前 問4

正解:ア

解説

<パラメタ>は英字の並び(1文字以上の文字列)を表し,<パラメタ指定>はそれ単体か,または「(<パラメタ指定>,<パラメタ>)」という再帰的な括弧形式のいずれかです。この再帰規則を使うと,パラメタ指定同士を入れ子にした「((abc, def), ghi)」のような形も導出できます。

選択肢ごとの解説

  • 正しい。(abc, def)は<パラメタ指定>であり,これと<パラメタ>ghiを組み合わせた((abc, def), ghi)は,再帰規則によって導出できる<パラメタ指定>です。
  • 誤り。((abc, def))は外側の括弧の中に<パラメタ指定>と<パラメタ>をコンマで区切る構造がなく,構文規則に合致しません。
  • 誤り。(abc, (def))は,2番目の要素が<パラメタ>(英字の並び)ではなく括弧付きの<パラメタ指定>になっており,規則に合致しません。
  • 誤り。(abc)は,かっこの中がコンマ区切りの<パラメタ指定>,<パラメタ>の形になっておらず,規則に合致しません。
応用情報技術者の過去問を演習モードで解く