情報に関する理論 (全39問中34問目)

No.34

次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,正しいものはどれか。

<パラメタ指定>::=<パラメタ>|(<パラメタ指定>,<パラメタ>)
<パラメタ>::=<英字>|<パラメタ><英字>
<英字>::=a|b|c|d|e|f|g|h|i
  • ((abc,def))
  • ((abc,def),ghi)
  • (abc)
  • (abc,(def))
  • [この問題の出題歴]
  • 応用情報技術者 H30秋期 問4
  • ソフトウェア開発技術者 H15春期 問8

分類

テクノロジ系 » 基礎理論 » 情報に関する理論

正解

解説

各肢を展開していき<パラメタ指定>に帰結するか否かを調べていきます。※英字の並びは<パラメタ>で表されます。
  • ((<パラメタ>,<パラメタ>))
    → ((<パラメタ指定>,<パラメタ>))
    → (<パラメタ指定>)
    外側の括弧を外すことができないので不適切です。
  • ((<パラメタ>,<パラメタ>),<パラメタ>)
    → ((<パラメタ指定>,<パラメタ>),<パラメタ>)
    → (<パラメタ指定>,<パラメタ>)
    → <パラメタ指定>
    最終的に<パラメタ指定>になるのでこれが正解です。
  • (<パラメタ>)
    → (<パラメタ指定>)
    括弧を外すことができないので不適切です。
  • (<パラメタ>,(<パラメタ>))
    これ以上変形できないので不適切です。
また、上記とは逆に<パラメタ指定>を再帰的に展開していき、答えを導くこともできます

<パラメタ指定>
→ (<パラメタ指定>,<パラメタ>)
→ ((<パラメタ指定>,<パラメタ>),<パラメタ>)
→ ((<パラメタ>,<パラメタ>),<パラメタ>)

括弧の位置と英字列の数から考えて適切な構文となっているのは「イ」とわかります。
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop