平成18年春期試験問題 午前問8

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

<パラメータ指定>::=<パラメータ>|(<パラメータ指定>,<パラメータ>)
<パラメータ>::=<英字>|<パラメータ><英字>
<英字>::=a|b|c|d|e|f|g|h|i

  • ((abc,def))
  • ((abc,def),ghi)
  • (abc)
  • (abc,(def))
正解 問題へ
分野:テクノロジ系
中分類:基礎理論
小分類:情報に関する理論
解説
各肢を展開していき<パラメータ指定>に帰結するか否かを調べていきます。※英字の並びは<パラメータ>で表されます。
  • ((<パラメータ>,<パラメータ>))
    → ((<パラメータ指定>,<パラメータ>))
    → (<パラメータ指定>)
    外側の括弧を外すことができないので不適切です。
  • ((<パラメータ>,<パラメータ>),<パラメータ>)
    → ((<パラメータ指定>,<パラメータ>),<パラメータ>)
    → (<パラメータ指定>,<パラメータ>)
    → <パラメータ指定>
    最終的に<パラメータ指定>になるのでこれが正解です。
  • (<パラメータ>)
    → (<パラメータ指定>)
    括弧を外すことができないので不適切です。
  • (<パラメータ>,(<パラメータ>))
    これ以上変形できないので不適切です。
また、上記とは逆に<パラメータ指定>を再帰的に展開していき、答えを導くこともできます

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

括弧の位置と英字列の数から考えて適切な構文となっているのは「イ」とわかります。

この問題の出題歴


Pagetop