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