情報に関する理論 (全39問中1問目)
No.1
次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,適切なものはどれか。
<パラメタ指定>::=<パラメタ>|(<パラメタ指定>,<パラメタ>)
<パラメタ>::=<英字>|<パラメタ><英字>
<英字>::=a|b|c|d|e|f|g|h|i
<パラメタ指定>::=<パラメタ>|(<パラメタ指定>,<パラメタ>)
<パラメタ>::=<英字>|<パラメタ><英字>
<英字>::=a|b|c|d|e|f|g|h|i
出典:平成30年秋期 問4
- [この問題の出題歴]
- ソフトウェア開発技術者 H15春期 問8
- ソフトウェア開発技術者 H18春期 問8
分類
テクノロジ系 » 基礎理論 » 情報に関する理論
正解
ア
解説
各肢を展開していき<パラメタ指定>に帰結するか否かを調べていきます。※英字の並びは<パラメタ>で表されます。
<パラメタ指定>
→ (<パラメタ指定>,<パラメタ>)
→ ((<パラメタ指定>,<パラメタ>),<パラメタ>)
→ ((<パラメタ>,<パラメタ>),<パラメタ>)
括弧の位置と英字列の数から考えて適切な構文となっているのは「ア」とわかります。
- 正しい。
((<パラメタ>,<パラメタ>),<パラメタ>)
→ ((<パラメタ指定>,<パラメタ>),<パラメタ>)
→ (<パラメタ指定>,<パラメタ>)
→ <パラメタ指定>
最終的に<パラメタ指定>になるのでこれが正解です。 - ((<パラメタ>,<パラメタ>))
→ ((<パラメタ指定>,<パラメタ>))
→ (<パラメタ指定>)
外側の括弧を外すことができないので不適切です。 - (<パラメタ>,(<パラメタ>))
これ以上変形できないので不適切です。 - (<パラメタ>)
→ (<パラメタ指定>)
括弧を外すことができないので不適切です。
<パラメタ指定>
→ (<パラメタ指定>,<パラメタ>)
→ ((<パラメタ指定>,<パラメタ>),<パラメタ>)
→ ((<パラメタ>,<パラメタ>),<パラメタ>)
括弧の位置と英字列の数から考えて適切な構文となっているのは「ア」とわかります。