ソフトウェア開発技術者平成18年春期 午前問8

問8

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

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

分類

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

正解

解説

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

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

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

Pagetop